SlideShare a Scribd company logo
 
Automated Web Testing using Selenium Perficient China Waylon Zhang Yahoo!m:  waylon_zhang2008 [email_address]
Agenda Warm-up  Introduction of Selenium Framework Troubleshooting of Selenium Practice Q&A
Warm-up Google Advance Search Function
Prerequisite Development experience in Java language Knowledge of Xpath language Basic knowledge of HTML/Junit/TestNg Knowledge of The Same Origin Policy
What is Selenium? Selenium is a suite of tools to automate web app testing across many platforms.   Selenium Core: DHTML test execution framework Selenium IDE: Firefox extension – record and playback Selenium Remote Control Server: launches/kills browser, HTTP Proxy Client libraries Selenium Grid Run Selenium tests in parallel
Selenium components *Selenese is the set of Selenium Commands that run you tests. Don’t support If or For (While) statements C#, Java, Perl, PHP, Python, Ruby Selenese *Selenese  Programming Languages Yes No No Support I&O Yes No No Need Jre Yes Yes No Different Domain Yes Yes Yes Support Https/SSL No No Yes AUT Server side installed Firefox, IE,Safari Firefox Firefox, IE,Safari Browsers Selenium Remote Control Selenium IDE Selenium Core
How to use Selenium RC to develop
How Selenium RC Works?
How Selenium RC Works? (cont.)
Selenium Solutions of HTTPS Support HTTPS IE (supported by default, configure IE browser) FireFox (Selenium server doesn’t support add-ons configurations) Safari   (doesn’t support HTTPS configurations, so Selenium can’t run on it)
Selenium to Test Click Flash (1/2)
Selenium to test Click Flash (2/2) Get help from Developer javascript:WTKSendFlashClick( "{\"Page\":\"Exterior\", \"ClickType\":\"angleClick\",\"ClickParams\":{\"Direction\":\"left\"}}" ) Use Selenium’s API selenium.runScript(target)
Selenium to test Ajax Wait For It…
Add API to Selenium (1/2)  Example: add Function of  getTableRows(locator) to Selenium Server Side Add js to user-extensions.js Save the user-extensions.js under the folder where selenium server resides start selenium server with user-extensions.js
Add API to Selenium (2/2)  Example: add Function of  getTableRows(locator) to Selenium Client Side Add API to Selenium.java under package of com.thoughtworks.selenium  Add function to DefaultSelenium.java under package of com.thoughtworks.selenium
Selenium Open Issues How to test GWT web applications?
Problems in Selenium Verbose  Locators everywhere Coupling UI locators, actions, and assertions are coupled Not expressive What does the UI look like? Speed Since IE is lack of native XPath support, so tests run in IE are very slow Record and Play Re-labeling a button or moving it to another part of the window may require the test to be re-recorded Refactor Seems to be difficult Reusable Less likely
Tellurium’s solution package com.perficient.tellurium.webapp.ui import org.tellurium.dsl.DslContext public class TelluriumModule extends DslContext { public void defineUi(){ ui.Container(uid: "root", clocator: [tag: "table", name: "Tellurium"]){ InputBox(uid: "firstName", clocator: [tag: "input", type: "text", name: "FirstName"]) InputBox(uid: "lastName", clocator: [tag: "input", type: "text", name: "LastName"]) InputBox(uid: "fullName", clocator: [tag: "input", type: "text", name: "FullName"]) InputBox(uid: "save", clocator: [tag: "input", type: "button", value: "Save"], respond:  ["click"]) } } public void getFullName(String firstName,String lastName){ type "root.firstName",firstName type "root.lastName",lastName pause 500 click "root.save" } }
What is Tellurium? UI module based web testing framework built on top of Selenium UI is defined in Groovy class and tests can be written in  Java (JUnit 4 or TestNG) Groovy Pure DSL script Handles the mapping from Java object to UI  Reference:  http:// code.google.com/p/aost /
What challenges are addressed in Tellurium No longer “record and play” style, but UI module oriented Separated Robust Easy to refactor
What challenges are addressed in Tellurium Support jQuery Selector useJQuerySelector() disableJQuerySelector()
Summarization: Advantage/Disadvantage Involved new language  Very new, some potential risks we don’t know No longer “record and play” style, but UI module oriented Easy to refactor Easy to use UI and tests are separated Faster performance in IE  Ideally only defining the HTML elements is required as the entry criteria of scripting Tellurium Hard to refactor Very slow in IE UI locators, actions, and assertions are coupled Record and Play requires little or no software development  It’s required to have both the HTML and the back-end code ready before we start scripting Selenium Disadvantage Advantage Pre-condition
Best Practices To Automate or Not to Automate? That is the Question! The test framework should be approved, documented, reviewed. Structure scripts with minimal dependencies. Test automation is a fulltime effort, not a sideline. A dedicated team is required.
Q&A
References Tellurium Framework http:// code.google.com/p/aost /   Guidelines for Automation framework design http://knowledgeinbox.com/articles/automation/frameworks/guidelines-for-automation-framework-design/ 10 Step Test Automation Approach - Guide for automation testers http://testing.thoughtworks.com/article10step

More Related Content

What's hot (20)

Selenium test automation
Selenium test automationSelenium test automation
Selenium test automation
Srikanth Vuriti
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
Cuelogic Technologies Pvt. Ltd.
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber
Knoldus Inc.
 
Web application testing with Selenium
Web application testing with SeleniumWeb application testing with Selenium
Web application testing with Selenium
Kerry Buckley
 
Test automation
Test automationTest automation
Test automation
Xavier Yin
 
Selenium Grid
Selenium GridSelenium Grid
Selenium Grid
nirvdrum
 
Selenium
SeleniumSelenium
Selenium
Batch2016
 
Test automation using selenium
Test automation using seleniumTest automation using selenium
Test automation using selenium
Cynoteck Technology Solutions Private Limited
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
Qspiders - Software Testing Training Institute
 
Cucumber ppt
Cucumber pptCucumber ppt
Cucumber ppt
Qwinix Technologies
 
Selenium Automation Framework
Selenium Automation  FrameworkSelenium Automation  Framework
Selenium Automation Framework
Mindfire Solutions
 
Cypress
CypressCypress
Cypress
Jonathan de Britto Sedrez
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Pavan Kumar
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
Naga Dinesh
 
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
What Is Selenium? | Selenium Basics For Beginners | Introduction To Selenium ...
Simplilearn
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
Naresh Chintalcheru
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
Ana Sarbescu
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
Knoldus Inc.
 
Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium
Edureka!
 
Automation Testing using Selenium Webdriver
Automation Testing using Selenium WebdriverAutomation Testing using Selenium Webdriver
Automation Testing using Selenium Webdriver
Pankaj Biswas
 

Viewers also liked (15)

Pfm poblacion
Pfm  poblacionPfm  poblacion
Pfm poblacion
Jose Antonio Tito
 
sredharselvam resume
sredharselvam resumesredharselvam resume
sredharselvam resume
sredhar selvam
 
III Jornada de Perinatologia de Joinville
III Jornada de Perinatologia de JoinvilleIII Jornada de Perinatologia de Joinville
III Jornada de Perinatologia de Joinville
Marcio Fossari
 
Prezentare spocs dec._2011_agenda_digitala
Prezentare spocs dec._2011_agenda_digitalaPrezentare spocs dec._2011_agenda_digitala
Prezentare spocs dec._2011_agenda_digitala
Monica ANGHEL
 
CodeIgniter For Project : Lesson 104 - Controller & View
CodeIgniter For Project : Lesson 104 - Controller & ViewCodeIgniter For Project : Lesson 104 - Controller & View
CodeIgniter For Project : Lesson 104 - Controller & View
Weerayut Hongsa
 
Gamefish ireland website
Gamefish ireland websiteGamefish ireland website
Gamefish ireland website
kscull
 
Gill TESOL 2010 Talkng At Length: Strategies and Genres of Extended Discourse
Gill TESOL 2010 Talkng At Length: Strategies and Genres of Extended DiscourseGill TESOL 2010 Talkng At Length: Strategies and Genres of Extended Discourse
Gill TESOL 2010 Talkng At Length: Strategies and Genres of Extended Discourse
kategill
 
Code igniter 20160119
Code igniter 20160119Code igniter 20160119
Code igniter 20160119
ko donghwi
 
Titulada presencial
Titulada presencialTitulada presencial
Titulada presencial
Nayey Alarcon
 
Barbaresques et esclavage des blancs
Barbaresques et esclavage des blancsBarbaresques et esclavage des blancs
Barbaresques et esclavage des blancs
Aschkel Levi
 
Listas jornada mañana grupos de media fortalecida
Listas jornada mañana  grupos de media fortalecidaListas jornada mañana  grupos de media fortalecida
Listas jornada mañana grupos de media fortalecida
colegiommc
 
Calendario academico 2017
Calendario academico 2017Calendario academico 2017
Calendario academico 2017
nayey rodriguez
 
Agosto 2016 apoyos_005695
Agosto 2016 apoyos_005695Agosto 2016 apoyos_005695
Agosto 2016 apoyos_005695
nayey rodriguez
 
[eh2016] - Novità Prestashop 1.7 - Luca Mastroianni, Roberto Di Stefano, Anto...
[eh2016] - Novità Prestashop 1.7 - Luca Mastroianni, Roberto Di Stefano, Anto...[eh2016] - Novità Prestashop 1.7 - Luca Mastroianni, Roberto Di Stefano, Anto...
[eh2016] - Novità Prestashop 1.7 - Luca Mastroianni, Roberto Di Stefano, Anto...
Ecommerce HUB
 
[eh2016] - Web Advertising per Ecommerce: strategie e pratiche di automazione...
[eh2016] - Web Advertising per Ecommerce: strategie e pratiche di automazione...[eh2016] - Web Advertising per Ecommerce: strategie e pratiche di automazione...
[eh2016] - Web Advertising per Ecommerce: strategie e pratiche di automazione...
Ecommerce HUB
 
III Jornada de Perinatologia de Joinville
III Jornada de Perinatologia de JoinvilleIII Jornada de Perinatologia de Joinville
III Jornada de Perinatologia de Joinville
Marcio Fossari
 
Prezentare spocs dec._2011_agenda_digitala
Prezentare spocs dec._2011_agenda_digitalaPrezentare spocs dec._2011_agenda_digitala
Prezentare spocs dec._2011_agenda_digitala
Monica ANGHEL
 
CodeIgniter For Project : Lesson 104 - Controller & View
CodeIgniter For Project : Lesson 104 - Controller & ViewCodeIgniter For Project : Lesson 104 - Controller & View
CodeIgniter For Project : Lesson 104 - Controller & View
Weerayut Hongsa
 
Gamefish ireland website
Gamefish ireland websiteGamefish ireland website
Gamefish ireland website
kscull
 
Gill TESOL 2010 Talkng At Length: Strategies and Genres of Extended Discourse
Gill TESOL 2010 Talkng At Length: Strategies and Genres of Extended DiscourseGill TESOL 2010 Talkng At Length: Strategies and Genres of Extended Discourse
Gill TESOL 2010 Talkng At Length: Strategies and Genres of Extended Discourse
kategill
 
Code igniter 20160119
Code igniter 20160119Code igniter 20160119
Code igniter 20160119
ko donghwi
 
Barbaresques et esclavage des blancs
Barbaresques et esclavage des blancsBarbaresques et esclavage des blancs
Barbaresques et esclavage des blancs
Aschkel Levi
 
Listas jornada mañana grupos de media fortalecida
Listas jornada mañana  grupos de media fortalecidaListas jornada mañana  grupos de media fortalecida
Listas jornada mañana grupos de media fortalecida
colegiommc
 
Calendario academico 2017
Calendario academico 2017Calendario academico 2017
Calendario academico 2017
nayey rodriguez
 
Agosto 2016 apoyos_005695
Agosto 2016 apoyos_005695Agosto 2016 apoyos_005695
Agosto 2016 apoyos_005695
nayey rodriguez
 
[eh2016] - Novità Prestashop 1.7 - Luca Mastroianni, Roberto Di Stefano, Anto...
[eh2016] - Novità Prestashop 1.7 - Luca Mastroianni, Roberto Di Stefano, Anto...[eh2016] - Novità Prestashop 1.7 - Luca Mastroianni, Roberto Di Stefano, Anto...
[eh2016] - Novità Prestashop 1.7 - Luca Mastroianni, Roberto Di Stefano, Anto...
Ecommerce HUB
 
[eh2016] - Web Advertising per Ecommerce: strategie e pratiche di automazione...
[eh2016] - Web Advertising per Ecommerce: strategie e pratiche di automazione...[eh2016] - Web Advertising per Ecommerce: strategie e pratiche di automazione...
[eh2016] - Web Advertising per Ecommerce: strategie e pratiche di automazione...
Ecommerce HUB
 
Ad

Similar to Automated Web Testing Using Selenium (20)

Selenium RC Using Java and Maven + Maestro Integration
Selenium RC Using Java and Maven + Maestro IntegrationSelenium RC Using Java and Maven + Maestro Integration
Selenium RC Using Java and Maven + Maestro Integration
Exist
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
gueste1e4db
 
What is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptxWhat is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptx
Syntax Technologies
 
Selenium Primer
Selenium PrimerSelenium Primer
Selenium Primer
Debashish Chakrabarty
 
Selenium
SeleniumSelenium
Selenium
jagdishdevabhaipatel
 
BCS Selenium Workshop
BCS Selenium WorkshopBCS Selenium Workshop
BCS Selenium Workshop
Colin McDonald
 
What is selenium
What is seleniumWhat is selenium
What is selenium
sachin patil
 
Sakai10 Selenium Workshop
Sakai10 Selenium WorkshopSakai10 Selenium Workshop
Sakai10 Selenium Workshop
coreyjack
 
Introduction to Selenium
Introduction to SeleniumIntroduction to Selenium
Introduction to Selenium
rohitnayak
 
Selenium testing IDE 101
Selenium testing IDE 101Selenium testing IDE 101
Selenium testing IDE 101
Adam Culp
 
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Yuriy Gerasimov
 
Selenium
SeleniumSelenium
Selenium
Daksh Sharma
 
Selenium - automated browser-based testing -
Selenium - automated browser-based testing -Selenium - automated browser-based testing -
Selenium - automated browser-based testing -
Seiji KOMATSU
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
vivek_prahlad
 
Best automation testing syllabus 2025.pdf
Best automation testing syllabus 2025.pdfBest automation testing syllabus 2025.pdf
Best automation testing syllabus 2025.pdf
mayra0232020
 
Test Automation Using Selenium
Test Automation Using SeleniumTest Automation Using Selenium
Test Automation Using Selenium
Nikhil Kapoor
 
Selenium
SeleniumSelenium
Selenium
David Rajah Selvaraj
 
Basics of Selenium IDE,Core, Remote Control
Basics of Selenium IDE,Core, Remote ControlBasics of Selenium IDE,Core, Remote Control
Basics of Selenium IDE,Core, Remote Control
usha kannappan
 
Intro Of Selenium
Intro Of SeleniumIntro Of Selenium
Intro Of Selenium
Kai Feng Zhang
 
Automated ui testing with selenium. drupal con london 2011
Automated ui testing with selenium. drupal con london 2011Automated ui testing with selenium. drupal con london 2011
Automated ui testing with selenium. drupal con london 2011
Yuriy Gerasimov
 
Selenium RC Using Java and Maven + Maestro Integration
Selenium RC Using Java and Maven + Maestro IntegrationSelenium RC Using Java and Maven + Maestro Integration
Selenium RC Using Java and Maven + Maestro Integration
Exist
 
What is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptxWhat is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptx
Syntax Technologies
 
Sakai10 Selenium Workshop
Sakai10 Selenium WorkshopSakai10 Selenium Workshop
Sakai10 Selenium Workshop
coreyjack
 
Introduction to Selenium
Introduction to SeleniumIntroduction to Selenium
Introduction to Selenium
rohitnayak
 
Selenium testing IDE 101
Selenium testing IDE 101Selenium testing IDE 101
Selenium testing IDE 101
Adam Culp
 
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Yuriy Gerasimov
 
Selenium - automated browser-based testing -
Selenium - automated browser-based testing -Selenium - automated browser-based testing -
Selenium - automated browser-based testing -
Seiji KOMATSU
 
Web Test Automation with Selenium
Web Test Automation with SeleniumWeb Test Automation with Selenium
Web Test Automation with Selenium
vivek_prahlad
 
Best automation testing syllabus 2025.pdf
Best automation testing syllabus 2025.pdfBest automation testing syllabus 2025.pdf
Best automation testing syllabus 2025.pdf
mayra0232020
 
Test Automation Using Selenium
Test Automation Using SeleniumTest Automation Using Selenium
Test Automation Using Selenium
Nikhil Kapoor
 
Basics of Selenium IDE,Core, Remote Control
Basics of Selenium IDE,Core, Remote ControlBasics of Selenium IDE,Core, Remote Control
Basics of Selenium IDE,Core, Remote Control
usha kannappan
 
Automated ui testing with selenium. drupal con london 2011
Automated ui testing with selenium. drupal con london 2011Automated ui testing with selenium. drupal con london 2011
Automated ui testing with selenium. drupal con london 2011
Yuriy Gerasimov
 
Ad

Recently uploaded (20)

Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry ReportThe State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Impelsys Inc.
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfBoosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Alkin Tezuysal
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data ResilienceFloods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdfArtificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI ProfessionalOracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOMEstablish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Anchore
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdfCrypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und AnwendungsfälleDomino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
panagenda
 
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdfcnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
AmirStern2
 
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdfvertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
AmirStern2
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FMEEnabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025Mastering AI Workflows with FME - Peak of Data & AI 2025
Mastering AI Workflows with FME - Peak of Data & AI 2025
Safe Software
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
The State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry ReportThe State of Web3 Industry- Industry Report
The State of Web3 Industry- Industry Report
Liveplex
 
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Impelsys Inc.
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdfBoosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Boosting MySQL with Vector Search -THE VECTOR SEARCH CONFERENCE 2025 .pdf
Alkin Tezuysal
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data ResilienceFloods in Valencia: Two FME-Powered Stories of Data Resilience
Floods in Valencia: Two FME-Powered Stories of Data Resilience
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdfArtificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI ProfessionalOracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOMEstablish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Anchore
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdfCrypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und AnwendungsfälleDomino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
Domino IQ – Was Sie erwartet, erste Schritte und Anwendungsfälle
panagenda
 
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdfcnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
AmirStern2
 
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdfvertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
AmirStern2
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely Demo Showcase: Powering ServiceNow Discovery with Precisely Ironstr...
Precisely
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FMEEnabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 

Automated Web Testing Using Selenium

  • 1.  
  • 2. Automated Web Testing using Selenium Perficient China Waylon Zhang Yahoo!m: waylon_zhang2008 [email_address]
  • 3. Agenda Warm-up Introduction of Selenium Framework Troubleshooting of Selenium Practice Q&A
  • 4. Warm-up Google Advance Search Function
  • 5. Prerequisite Development experience in Java language Knowledge of Xpath language Basic knowledge of HTML/Junit/TestNg Knowledge of The Same Origin Policy
  • 6. What is Selenium? Selenium is a suite of tools to automate web app testing across many platforms. Selenium Core: DHTML test execution framework Selenium IDE: Firefox extension – record and playback Selenium Remote Control Server: launches/kills browser, HTTP Proxy Client libraries Selenium Grid Run Selenium tests in parallel
  • 7. Selenium components *Selenese is the set of Selenium Commands that run you tests. Don’t support If or For (While) statements C#, Java, Perl, PHP, Python, Ruby Selenese *Selenese Programming Languages Yes No No Support I&O Yes No No Need Jre Yes Yes No Different Domain Yes Yes Yes Support Https/SSL No No Yes AUT Server side installed Firefox, IE,Safari Firefox Firefox, IE,Safari Browsers Selenium Remote Control Selenium IDE Selenium Core
  • 8. How to use Selenium RC to develop
  • 10. How Selenium RC Works? (cont.)
  • 11. Selenium Solutions of HTTPS Support HTTPS IE (supported by default, configure IE browser) FireFox (Selenium server doesn’t support add-ons configurations) Safari (doesn’t support HTTPS configurations, so Selenium can’t run on it)
  • 12. Selenium to Test Click Flash (1/2)
  • 13. Selenium to test Click Flash (2/2) Get help from Developer javascript:WTKSendFlashClick( "{\"Page\":\"Exterior\", \"ClickType\":\"angleClick\",\"ClickParams\":{\"Direction\":\"left\"}}" ) Use Selenium’s API selenium.runScript(target)
  • 14. Selenium to test Ajax Wait For It…
  • 15. Add API to Selenium (1/2) Example: add Function of getTableRows(locator) to Selenium Server Side Add js to user-extensions.js Save the user-extensions.js under the folder where selenium server resides start selenium server with user-extensions.js
  • 16. Add API to Selenium (2/2) Example: add Function of getTableRows(locator) to Selenium Client Side Add API to Selenium.java under package of com.thoughtworks.selenium Add function to DefaultSelenium.java under package of com.thoughtworks.selenium
  • 17. Selenium Open Issues How to test GWT web applications?
  • 18. Problems in Selenium Verbose Locators everywhere Coupling UI locators, actions, and assertions are coupled Not expressive What does the UI look like? Speed Since IE is lack of native XPath support, so tests run in IE are very slow Record and Play Re-labeling a button or moving it to another part of the window may require the test to be re-recorded Refactor Seems to be difficult Reusable Less likely
  • 19. Tellurium’s solution package com.perficient.tellurium.webapp.ui import org.tellurium.dsl.DslContext public class TelluriumModule extends DslContext { public void defineUi(){ ui.Container(uid: "root", clocator: [tag: "table", name: "Tellurium"]){ InputBox(uid: "firstName", clocator: [tag: "input", type: "text", name: "FirstName"]) InputBox(uid: "lastName", clocator: [tag: "input", type: "text", name: "LastName"]) InputBox(uid: "fullName", clocator: [tag: "input", type: "text", name: "FullName"]) InputBox(uid: "save", clocator: [tag: "input", type: "button", value: "Save"], respond: ["click"]) } } public void getFullName(String firstName,String lastName){ type "root.firstName",firstName type "root.lastName",lastName pause 500 click "root.save" } }
  • 20. What is Tellurium? UI module based web testing framework built on top of Selenium UI is defined in Groovy class and tests can be written in Java (JUnit 4 or TestNG) Groovy Pure DSL script Handles the mapping from Java object to UI Reference: http:// code.google.com/p/aost /
  • 21. What challenges are addressed in Tellurium No longer “record and play” style, but UI module oriented Separated Robust Easy to refactor
  • 22. What challenges are addressed in Tellurium Support jQuery Selector useJQuerySelector() disableJQuerySelector()
  • 23. Summarization: Advantage/Disadvantage Involved new language Very new, some potential risks we don’t know No longer “record and play” style, but UI module oriented Easy to refactor Easy to use UI and tests are separated Faster performance in IE Ideally only defining the HTML elements is required as the entry criteria of scripting Tellurium Hard to refactor Very slow in IE UI locators, actions, and assertions are coupled Record and Play requires little or no software development It’s required to have both the HTML and the back-end code ready before we start scripting Selenium Disadvantage Advantage Pre-condition
  • 24. Best Practices To Automate or Not to Automate? That is the Question! The test framework should be approved, documented, reviewed. Structure scripts with minimal dependencies. Test automation is a fulltime effort, not a sideline. A dedicated team is required.
  • 25. Q&A
  • 26. References Tellurium Framework http:// code.google.com/p/aost / Guidelines for Automation framework design http://knowledgeinbox.com/articles/automation/frameworks/guidelines-for-automation-framework-design/ 10 Step Test Automation Approach - Guide for automation testers http://testing.thoughtworks.com/article10step

Editor's Notes

  • #8: Notes
  • #12: -firefoxProfileTemplate ${selenium.home}/profiles/firefoxProfile
  • #16: Add js to user-extensions.js: Selenium.prototype.getTableRows = function(locator) { /** * Gets the number of rows in a table. * * @param locator element locator for table * @return number of rows in the table, 0 if none */ var table = this.browserbot.findElement(locator); return table.rows.length.toString(); }; Selenium.java: String getTableRows(String locator); DefaultSelenium.java: public String getTableRows(String locator){ return commandProcessor.getString("getTableRows", new String[] {locator,}); } Test Method: public void testTables() throws InterruptedException{ selenium.open("http://www.w3schools.com/tags/tag_table.asp"); Thread. sleep (10000); String rows= selenium.getTableRows("//table[@id='table3']"); System. out .println("rows count= "+rows); }
  • #17: Add js to user-extensions.js: Selenium.prototype.getTableRows = function(locator) { /** * Gets the number of rows in a table. * * @param locator element locator for table * @return number of rows in the table, 0 if none */ var table = this.browserbot.findElement(locator); return table.rows.length.toString(); }; Selenium.java: String getTableRows(String locator); DefaultSelenium.java: public String getTableRows(String locator){ return commandProcessor.getString("getTableRows", new String[] {locator,}); } Test Method: public void testTables() throws InterruptedException{ selenium.open("http://www.w3schools.com/tags/tag_table.asp"); Thread. sleep (10000); String rows= selenium.getTableRows("//table[@id='table3']"); System. out .println("rows count= "+rows); }
  • #22: XPath builder can build the XPath from the composite locator, i.e., a set of attributes. Starting with version 0.6.0, Tellurium supports jQuery selectors to address the problem of poor performance of XPath in Internet Explorer. jQuery selector builders are used to automatically generate jQuery selectors instead of XPath with the following advantages: Faster performance in IE. Leverage the power of jQuery to retrieve bulk data from the web by testing with one method call. New features provided by jQuery attribute selectors.
  • #25: Notes
  • #27: Notes