SlideShare a Scribd company logo
How To Use Selenium,
Successfully
by Dave Haeffner, @TourDeDave
http://www.wpclipart.com/geography/features/chasm.png.html
http://en.wikipedia.org/wiki/Optimal_solutions_for_Rubik's_Cube
Write business valuable tests that are
reusable, maintainable and resilient
across all relevant browsers.
Then package and scale them for
you & your team.
Selenium Overview
• What it is — the Reader’s Digest version
• What it is and is not good at
• IDE vs. Local vs. Remote
• Slow, brittle, and hard to maintain?
Step 1
Define a Test Strategy
Test Strategy
1. How does your business make money?
2. What features of your application are being used?
3. What browsers are your users using?
4. What things have broken in the app before?
Outcome: What to test and which
browsers to care about
Step 2
Pick a Programming
Language
Programming Language
• Same language as the app?
• Who will own it?
• Build a framework or use an existing one?
• http://bit.ly/seleniumframeworks
Step 3
Use Selenium
fundamentals
Selenium Fundamentals
• Mimics human action
• Uses a few common actions
• Works with “locators”
Locators tell Selenium which HTML
element to interact with
Common Actions
• get();
• findElement();
• click(); //or submit();
• sendKeys();
• isDisplayed();
Locator Strategies
• Class
• CSS selectors
• ID
• Link Text
• Partial Link Text
• Tag Name
• XPath
Good locators are:
• unique
• descriptive
• unlikely to change
That rules a few of these out
Locator Strategies
• Class
• CSS selectors
• ID
• Link Text
• Partial Link Text
• Tag Name
• XPath
Good locators are:
• unique
• descriptive
• unlikely to change
That rules a few of these out
Locator Strategies
• Class
• CSS selectors
• ID
• Link Text
• Partial Link Text
• Tag Name
• XPath
Good locators are:
• unique
• descriptive
• unlikely to change
That rules a few of these out
Start with IDs and Classes
Locator Strategies
• Class
• CSS selectors
• ID
• Link Text
• Partial Link Text
• Tag Name
• XPath
Good locators are:
• unique
• descriptive
• unlikely to change
That rules a few of these out
Start with IDs and Classes
Use CSS or XPath (with care)
Locator Strategies
• Class
• CSS selectors
• ID
• Link Text
• Partial Link Text
• Tag Name
• XPath
CSS vs XPath
http://bit.ly/seleniumbenchmarks
http://bit.ly/cssxpathexamples
Finding Quality Locators
• Inspect the page
• Verify your selection
• e.g., FirePath or FireFinder
• http://bit.ly/verifyinglocators
• Learn through gaming
• http://bit.ly/locatorgame
• Conversation
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Step 4
Write your first test
Good Test Anatomy
• Write for BDD or xUnit test framework
• Test one thing (atomic)
• Each test can be run independently (autonomous)
• Anyone can understand what it is doing
• Group similar tests together
A Login Example
1. Visit the login form
2. Find the login form’s username field and input text
3. Find the login form’s password field and input text
4. Find the submit button and click it
1. or, find the form and submit it
http://the-internet.herokuapp.com/login
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Now to find an assertion
1. Login
2. Inspect the page
3. Find a locator
4. Verify it
5. Add it to the test
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Exception Handling
• org.openqa.selenium.NoSuchElementException:
Unable to locate element: {"method":"css
selector","selector":".flash.error"}
• Most common ones you’ll run into: 

NoSuchElement and
StaleElementReferenceError
• A list of all WebDriver exceptions: 

http://bit.ly/se-exceptions-java
Exception Handling cont’d
http://bit.ly/se-exceptions-howto
Step 5
Write reusable and
maintainable test code
Page Objects
Application Under Test
Test 1 Test 2 Test 3 Test 4 Test 5Test 1 Test 2 Test 3 Test 4 Test 5
Need to update EVERY test :-(
Application Under Test
Page Object(s)
Test 1 Test 2 Test 3 Test 4 Test 5
Need to update JUST the page object :-D
Let’s look at a page
object for login
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
And here’s what the test
looks like when using it
Page object helpers:
http://bit.ly/po-html-elements
http://bit.ly/po-page-factory
Base Page Object
Selenium
Commands
Page
Object 1
Page
Object 2
Page
Object 3
Page
Object 4
Page
Object 5
Base Page
Object
Page
Object 1
Page
Object 2
Page
Object 3
Page
Object 4
Page
Object 5
Selenium
Commands
• Global reuse
• More readable
• Insulates you from
Selenium API changes
http://bit.ly/se-upgrade
Let’s take a look at a
Base Page Object
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
And here it is
implemented
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
How everything fits together
Test TestTest
Page
Object
Page
Object
Base
Page
Object
Tests use page objects
Page objects inherits the
base page object
The base page object wraps
your Selenium commands
Step 6
Make your tests resilient
Waiting
Thread.sleep();
Implicit wait
Explicit waits
Thread.sleep();
Implicit wait
Explicit waits
Thread.sleep();
Implicit wait
Explicit waits
http://bit.ly/se-waiting
Explicit Waits
• Specify an amount of time, and an action
• Selenium will try repeatedly until either:
• The action is completed, or
• The amount of time specified has been reached
(and throw a timeout exception)
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
In the Base page object
In the DynamicLoading page object
Browser Timing
Considerations
Step 7
Prep for use
Test Harness
• Simple organizational structure
• Central setup and teardown
• Configurable at run-time (with sensible defaults)
• Reporting & Logging
• Parallelization
• Test Grouping
Folder structure
Central setup/teardown
More on JUnit Rules:
http://bit.ly/junit-rules
Simple config with defaults
Reporting & Logging
• Machine readable

e.g., JUnit XML
• Human readable

e.g., screenshots, failure message, stack trace
Fantastic Test Report Tool
http://bit.ly/se-reporter (Allure Framework)
Parallelization
• In code
• Through your test runner
• Through your Continuous Integration (CI) server
#protip Enforce random order execution of tests
http://bit.ly/junit-random-order
Recommended approach:
http://bit.ly/mvn-surefire
Test Grouping
• Metadata (a.k.a. Categories)
• Enables “test packs”
• Some category ideas
• wip
• shallow
• deep
• story number
More info:
bit.ly/junit-categories
Step 8
Add in cross-browser
execution
Locally
http://bit.ly/se-chromedriver
http://bit.ly/se-firefoxdriver
http://bit.ly/se-iedriver
http://bit.ly/se-operadriver (12.16)
http://bit.ly/se-safaridriver
Chrome
Grid
Grid Hub
Browser
Tests
All done with the Selenium Standalone Server
Just requires additional runtime flags
Grid
Node
Grid
Node
Grid
Node
Browser
Browser
Grid
Hub
Node(s)
Grid
More on Selenium Grid
http://bit.ly/se-grid-docs
http://bit.ly/se-grid-post
http://bit.ly/se-grid-extras
http://bit.ly/se-grid-scaler
Sauce Labs
Sauce Labs Browser
Tests
Sauce Labs
Additional Considerations
- Test name
- Pass/Fail status
- Secure tunnel
More on Sauce:
http://bit.ly/sauce-platforms
http://bit.ly/sauce-post
http://bit.ly/sauce-tutorial-java
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Step 9
Build an automated
feedback loop
Feedback loops
• The goal: Find failures early and often
• Done with continuous integration and notifications
• Notifications

e.g., remote: Email, chat, SMS

in-person: audio/visual, public shaming
Code
Committed
Unit/Integ.
(pass?)
Deploy to
autom. test
server
(success?)
Run
automated
tests
(pass?)
Deploy to
next env.
yes
yes
yes
Notify team if no
Code Promotion
Bonus points: stop the line
Simple CI configuration
1. Create a Job
2. Pull In Your Test Code
3. Set up Build Triggers
4. Configure Build steps
5. Configure Test Reports
6. Set up Notifications
7. Run Tests & View The Results
8. High-five your neighbor
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Step 10
Find information on
your own
http://bit.ly/se-info-slides
http://bit.ly/se-info-video
Steps to solve the puzzle
1. Define a Test Strategy
2. Pick a programming language
3. Use Selenium Fundamentals
4. Write Your First Test
5. Write re-usable and maintainable
test code
6. Make your tests resilient
7. Package your tests into a framework
8. Add in cross-browser execution
9. Build an automated feedback loop
10. Find information on your own
Write business valuable tests that are
reusable, maintainable and resilient
across all relevant browsers.
Then package them and scale them
for you & your team.
–Dave Haeffner
“You may think your puzzle is unique. But really, everyone is
trying to solve the same puzzle. Yours is just configured
differently — and it’s solvable”
https://seleniumguidebook.com/
Selenium
Tips & Tricks
by Dave Haeffner
@TourDeDave
http://ElementalSelenium.com
etc.
Headless w/ Xvfb
Tip 38
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Headless w/ GhostDriver
Tip 38
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Step 2 - Start PhantomJS w/ WebDriver flag
Step 1 - Download PhantomJS
http://phantomjs.org/download.html
Step 3 - Connect Your Test to PhantomJS
using Selenium Remote
NOTE: You can also connect PhantomJS to a Selenium Grid
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
HTTP Status Codes
Tip 17
Configuration
• Use a proxy server to capture the traffic from your
Selenium test(s)
• Find the status code for the action you’re interested
in (e.g., visiting a URL)
• Assert that the status code is what you expect
Selenium Browser
Proxy
Server
Application
Under
Test
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Blacklisting
Tip 66
Configuration
• Use a proxy server to manipulate the traffic from
your Selenium test(s)
• Identify third-party resources that are slow to load
(which could negatively impact your tests) and
blacklist them (e.g., make it so they don’t load)
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Load Testing
Tip 68
Configuration
• Use a proxy server to capture the traffic from your
Selenium test(s)
• Convert the HTTP Archive into a JMeter JMX file
• Run the new JMX file with JMeter to enact load on
your application (modify as needed)
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Code adapted from ruby-jmeter example from flood.io
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Broken Image Checking
Tip 67
Option 1 - Proxy Server
Option 2 - HTTP Library
Option 3 - JavaScript
Option 1: Proxy Server
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Option 2: HTTP Library
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Option 3: JavaScript
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Forgot Password
Tip 43
Configuration
• Use Selenium to trigger the forgot password
workflow (which sends an e-mail to a Gmail
account) and keep the session active
• Retrieve the e-mail and it’s contents (e.g., a URL)
through the Gmail API
• Launch the URL from the e-mail using the Selenium
session
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
A/B Testing
Tip 12
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Example Explanation
• There are 3 states available in the example on the-
internet. Each state has different header text.
• The control has the text ‘A/B Test Control’
• The variation has the text ‘A/B Test Variation 1’
• Outside of the split test, the text says ‘No A/B Test’
Configuration
• You can easily opt-out of A/B tests by forging a
cookie or appending a query to the URL
• This way you get a known state of the page which
isn’t likely to change without your knowledge
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Downloading a File
Tips 2, 8, & 15
Two approaches
• Configure Selenium to download to local disk, and
delete the file when done
• Use an HTTP library, perform a HEAD request, and
check the headers for the correct content type &
length.
A HEAD request with an HTTP library is an order of
magnitude faster than downloading with Selenium since
you’re just checking the headers. And, it can be used in
tandem with Selenium.
With Selenium
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
With an HTTP library
With an HTTP library (for secure files)
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Highlight Elements
Tip 65
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Growl Notifications
Tip 55
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
See the video at http://bit.ly/se-growl-video
Visual Testing
Some Write-ups
http://bit.ly/se-visual-1 Getting Started
http://bit.ly/se-visual-2 False Positives part 1
http://bit.ly/se-visual-3 False Positives part 2
http://bit.ly/se-visual-4 Add Visual Testing To Your Existing Tests
http://bit.ly/se-visual-5 Add Visual Testing To Your BDD Tests
A Robot On Every Desk ™
Tapsterbot
http://bit.ly/tapster-build
http://bitly.com/tapster-buy
Build Your Own
Buy One Fully Assembled
Get in touch
@TourDeDave
dhaeffner@gmail.com
DaveHaeffner.com

More Related Content

PDF
How To Use Selenium Successfully
PDF
Practical Tips & Tricks for Selenium Test Automation - Dave Haeffner
PDF
Getting Started with Selenium
PDF
How To Use Selenium Successfully
PDF
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
PDF
Practical Tips & Tricks for Selenium Test Automation
PDF
Selenium Best Practices with Jason Huggins
PDF
Mastering Test Automation: How to Use Selenium Successfully
How To Use Selenium Successfully
Practical Tips & Tricks for Selenium Test Automation - Dave Haeffner
Getting Started with Selenium
How To Use Selenium Successfully
Mastering UI automation at Scale: Key Lessons and Best Practices (By Fernando...
Practical Tips & Tricks for Selenium Test Automation
Selenium Best Practices with Jason Huggins
Mastering Test Automation: How to Use Selenium Successfully

What's hot (20)

PDF
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
PDF
Selenium 2 - PyCon 2011
PDF
Selenium Tips & Tricks
PPT
Selenium Primer
PDF
How to Use Selenium, Successfully
PPTX
Beyond the Release: CI That Transforms Organizations
DOCX
Selenium interview questions
PPTX
Automation Testing by Selenium Web Driver
PDF
Selenium Basics Tutorial
PDF
Expert selenium with core java
PPTX
Test Automation and Selenium
PPTX
Selenium - Introduction
DOCX
Selenium webdriver course content rakesh hansalia
DOCX
Selenium WebDriver FAQ's
PDF
Introduction to Automation Testing and Selenium overiew
PPTX
Basic Selenium Training
PDF
How To Use Selenium Successfully (Java Edition)
PPSX
Selenium WebDriver with Java
PDF
Selenium IDE LOCATORS
PPTX
Selenium topic 3 -Web Driver Basics
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
Selenium 2 - PyCon 2011
Selenium Tips & Tricks
Selenium Primer
How to Use Selenium, Successfully
Beyond the Release: CI That Transforms Organizations
Selenium interview questions
Automation Testing by Selenium Web Driver
Selenium Basics Tutorial
Expert selenium with core java
Test Automation and Selenium
Selenium - Introduction
Selenium webdriver course content rakesh hansalia
Selenium WebDriver FAQ's
Introduction to Automation Testing and Selenium overiew
Basic Selenium Training
How To Use Selenium Successfully (Java Edition)
Selenium WebDriver with Java
Selenium IDE LOCATORS
Selenium topic 3 -Web Driver Basics
Ad

Viewers also liked (20)

PDF
The Testable Web
PPT
Full Stack Testing Done Well
PDF
How To Find Information On Your Own
PDF
Automation Testing using Selenium
PPTX
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
PDF
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
PDF
Docker compose selenium-grid_tottoruby_25
PPTX
Agile testing for mere mortals
PDF
Selenium Basics
PPTX
The wild wild west of Selenium Capabilities
PDF
Bdd lessons-learned
PDF
Selenium Users Anonymous
PDF
SoftQL - Telecom Triage Services
PPTX
Cucumber Crash Course
PPT
Selenium
PDF
Selenium Clinic Eurostar 2012 WebDriver Tutorial
PDF
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
PPTX
Open Source Investing
PDF
Mobile Testing with Selenium 2 by Jason Huggins
The Testable Web
Full Stack Testing Done Well
How To Find Information On Your Own
Automation Testing using Selenium
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
Docker compose selenium-grid_tottoruby_25
Agile testing for mere mortals
Selenium Basics
The wild wild west of Selenium Capabilities
Bdd lessons-learned
Selenium Users Anonymous
SoftQL - Telecom Triage Services
Cucumber Crash Course
Selenium
Selenium Clinic Eurostar 2012 WebDriver Tutorial
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Open Source Investing
Mobile Testing with Selenium 2 by Jason Huggins
Ad

Similar to Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup (20)

PDF
How To Use Selenium Successfully (Java Edition)
PDF
How to use selenium successfully
PPTX
Selenium.pptx
PPTX
Automated Web Testing With Selenium
PPTX
Web UI Tests: Introduce UI tests using Selenium
PPTX
Selenium Automation
PDF
Selenium course training institute ameerpet hyderabad
PDF
Selenium course training institute ameerpet hyderabad – Best software trainin...
PPTX
Selenium web driver
PDF
Real World Selenium
PPTX
Automated_Testing_Selenium
PDF
Selenium Automation Testing - A Complete Guide.pdf
PDF
Learning selenium sample
PPTX
Selenium Testing
PDF
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
PDF
Selenium Automation Testing - A Complete Guide
PPTX
Selenium- A Software Testing Tool
PDF
Selenium Testing The Complete Step-by-Step Tutorial.pdf
PDF
Selenium Introduction by Sandeep Sharda
PPTX
Automatedtestingwithselenium shubham jain
How To Use Selenium Successfully (Java Edition)
How to use selenium successfully
Selenium.pptx
Automated Web Testing With Selenium
Web UI Tests: Introduce UI tests using Selenium
Selenium Automation
Selenium course training institute ameerpet hyderabad
Selenium course training institute ameerpet hyderabad – Best software trainin...
Selenium web driver
Real World Selenium
Automated_Testing_Selenium
Selenium Automation Testing - A Complete Guide.pdf
Learning selenium sample
Selenium Testing
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Selenium Automation Testing - A Complete Guide
Selenium- A Software Testing Tool
Selenium Testing The Complete Step-by-Step Tutorial.pdf
Selenium Introduction by Sandeep Sharda
Automatedtestingwithselenium shubham jain

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Electronic commerce courselecture one. Pdf
PDF
KodekX | Application Modernization Development
PDF
Machine learning based COVID-19 study performance prediction
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
“AI and Expert System Decision Support & Business Intelligence Systems”
20250228 LYD VKU AI Blended-Learning.pptx
Unlocking AI with Model Context Protocol (MCP)
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Empathic Computing: Creating Shared Understanding
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Building Integrated photovoltaic BIPV_UPV.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Mobile App Security Testing_ A Comprehensive Guide.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Network Security Unit 5.pdf for BCA BBA.
Chapter 3 Spatial Domain Image Processing.pdf
Review of recent advances in non-invasive hemoglobin estimation
Electronic commerce courselecture one. Pdf
KodekX | Application Modernization Development
Machine learning based COVID-19 study performance prediction
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup