SlideShare a Scribd company logo
Design patterns in web
testing automation with
WebDriver
Mikalai Alimenkou
http://xpinjection.com
@xpinjection
Design patterns in web testing automation with WebDriver
Design pattern? What is it?
Classical
Design
Patterns
Index
Page
Main
Page
login
Search
Page
search
filter
ordersearch
Details
Page
open
see more
show me like this
close
#1. Page Object
Page structure
Available methods
#2. Page Factory
#3. Page Element/Composite
List of Items
Link
Menu
PanelCheckbox
No duplicated code
LoadableComponent
#4. Invocations chain
#5. Decorator
Driver in driver in driver
in driver in driver in
driver in driver in driver
in driver in driver in
driver in driver in driver
in driver in driver…
#6. Proxy
@xpinjection
http://xpinjection.com
mikalai.alimenkou@xpinjection.com
Ad

Recommended

Web automation with Selenium for software engineers
Web automation with Selenium for software engineers
Mikalai Alimenkou
 
Brace yourself from automation death trap
Brace yourself from automation death trap
Prasad Kalgutkar
 
Internal DSLs For Automated Functional Testing
Internal DSLs For Automated Functional Testing
John Sonmez
 
Perils of Page-Object Pattern
Perils of Page-Object Pattern
Anand Bagmar
 
DSL in test automation
DSL in test automation
test test
 
Whys and Hows of Automation
Whys and Hows of Automation
vodQA
 
Building better WordPress applications
Building better WordPress applications
Phill Brown
 
How to make your functional tests really quick
How to make your functional tests really quick
Mikalai Alimenkou
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
Rhoynar Software Consulting
 
Behaviour driven development aka bdd
Behaviour driven development aka bdd
Prince Gupta
 
Cucumber ppt
Cucumber ppt
Qwinix Technologies
 
How to Use Selenium, Successfully
How to Use Selenium, Successfully
Sauce Labs
 
Patterns in Test Automation
Patterns in Test Automation
Anand Bagmar
 
Introduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - Zaloni
Joseph Khan
 
Increase automation to rest
Increase automation to rest
vodQA
 
Building Cool apps with flex
Building Cool apps with flex
Joseph Khan
 
ASP.NET 5 & Unit Testing
ASP.NET 5 & Unit Testing
Shahed Chowdhuri
 
Cucumber BDD
Cucumber BDD
Pravin Dsilva
 
Architecting test automation using selenium
Architecting test automation using selenium
David Adams
 
ASP.NET & Unit Testing
ASP.NET & Unit Testing
Shahed Chowdhuri
 
Sharing the pain using Protractor
Sharing the pain using Protractor
Anand Bagmar
 
Intro to Service Worker API and its use cases
Intro to Service Worker API and its use cases
satejsahu
 
What's new in selenium 4
What's new in selenium 4
Knoldus Inc.
 
JS Frameworks - Angular Vs Backbone
JS Frameworks - Angular Vs Backbone
Gourav Jain, MCTS®
 
An approach to app security - For beginners
An approach to app security - For beginners
vodQA
 
Java script performance tips
Java script performance tips
Shakti Shrestha
 
ASP.NET - Ivan Marković
ASP.NET - Ivan Marković
Software StartUp Academy Osijek
 
Get responsive with Galen
Get responsive with Galen
Thoughtworks
 
Software Test Patterns: Successes and Challenges
Software Test Patterns: Successes and Challenges
Bob Binder
 
Test Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 

More Related Content

What's hot (20)

Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
Rhoynar Software Consulting
 
Behaviour driven development aka bdd
Behaviour driven development aka bdd
Prince Gupta
 
Cucumber ppt
Cucumber ppt
Qwinix Technologies
 
How to Use Selenium, Successfully
How to Use Selenium, Successfully
Sauce Labs
 
Patterns in Test Automation
Patterns in Test Automation
Anand Bagmar
 
Introduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - Zaloni
Joseph Khan
 
Increase automation to rest
Increase automation to rest
vodQA
 
Building Cool apps with flex
Building Cool apps with flex
Joseph Khan
 
ASP.NET 5 & Unit Testing
ASP.NET 5 & Unit Testing
Shahed Chowdhuri
 
Cucumber BDD
Cucumber BDD
Pravin Dsilva
 
Architecting test automation using selenium
Architecting test automation using selenium
David Adams
 
ASP.NET & Unit Testing
ASP.NET & Unit Testing
Shahed Chowdhuri
 
Sharing the pain using Protractor
Sharing the pain using Protractor
Anand Bagmar
 
Intro to Service Worker API and its use cases
Intro to Service Worker API and its use cases
satejsahu
 
What's new in selenium 4
What's new in selenium 4
Knoldus Inc.
 
JS Frameworks - Angular Vs Backbone
JS Frameworks - Angular Vs Backbone
Gourav Jain, MCTS®
 
An approach to app security - For beginners
An approach to app security - For beginners
vodQA
 
Java script performance tips
Java script performance tips
Shakti Shrestha
 
ASP.NET - Ivan Marković
ASP.NET - Ivan Marković
Software StartUp Academy Osijek
 
Get responsive with Galen
Get responsive with Galen
Thoughtworks
 
Behaviour driven development aka bdd
Behaviour driven development aka bdd
Prince Gupta
 
How to Use Selenium, Successfully
How to Use Selenium, Successfully
Sauce Labs
 
Patterns in Test Automation
Patterns in Test Automation
Anand Bagmar
 
Introduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - Zaloni
Joseph Khan
 
Increase automation to rest
Increase automation to rest
vodQA
 
Building Cool apps with flex
Building Cool apps with flex
Joseph Khan
 
Architecting test automation using selenium
Architecting test automation using selenium
David Adams
 
Sharing the pain using Protractor
Sharing the pain using Protractor
Anand Bagmar
 
Intro to Service Worker API and its use cases
Intro to Service Worker API and its use cases
satejsahu
 
What's new in selenium 4
What's new in selenium 4
Knoldus Inc.
 
JS Frameworks - Angular Vs Backbone
JS Frameworks - Angular Vs Backbone
Gourav Jain, MCTS®
 
An approach to app security - For beginners
An approach to app security - For beginners
vodQA
 
Java script performance tips
Java script performance tips
Shakti Shrestha
 
Get responsive with Galen
Get responsive with Galen
Thoughtworks
 

Viewers also liked (17)

Software Test Patterns: Successes and Challenges
Software Test Patterns: Successes and Challenges
Bob Binder
 
Test Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Design patterns in test automation
Design patterns in test automation
Mikalai Alimenkou
 
Test Automation - Principles and Practices
Test Automation - Principles and Practices
Anand Bagmar
 
Hybrid automation framework
Hybrid automation framework
doai tran
 
Functional testing patterns
Functional testing patterns
Premanand Chandrasekaran
 
Beyond Page Objects
Beyond Page Objects
Dante Briones
 
Selenium Automation
Selenium Automation
Anuradha Malalasena
 
Hybrid framework for test automation
Hybrid framework for test automation
srivinayak
 
Hybrid framework
Hybrid framework
Sudhakar Mangi
 
Selenium WebDriver
Selenium WebDriver
Yuriy Bezgachnyuk
 
Selenium - The page object pattern
Selenium - The page object pattern
Michael Palotas
 
Selenium Automation Framework
Selenium Automation Framework
Mindfire Solutions
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation framework
Anand Bagmar
 
Basic Selenium Training
Basic Selenium Training
Dipesh Bhatewara
 
Using The Page Object Pattern
Using The Page Object Pattern
Dante Briones
 
Selenium Architecture
Selenium Architecture
rohitnayak
 
Software Test Patterns: Successes and Challenges
Software Test Patterns: Successes and Challenges
Bob Binder
 
Test Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Design patterns in test automation
Design patterns in test automation
Mikalai Alimenkou
 
Test Automation - Principles and Practices
Test Automation - Principles and Practices
Anand Bagmar
 
Hybrid automation framework
Hybrid automation framework
doai tran
 
Hybrid framework for test automation
Hybrid framework for test automation
srivinayak
 
Selenium - The page object pattern
Selenium - The page object pattern
Michael Palotas
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation framework
Anand Bagmar
 
Using The Page Object Pattern
Using The Page Object Pattern
Dante Briones
 
Selenium Architecture
Selenium Architecture
rohitnayak
 
Ad

More from Mikalai Alimenkou (20)

Rise and fall of Story Points. Capacity based planning from the trenches.
Rise and fall of Story Points. Capacity based planning from the trenches.
Mikalai Alimenkou
 
Static analysis tools as the best friend of QA
Static analysis tools as the best friend of QA
Mikalai Alimenkou
 
Modern CI/CD in the microservices world with Kubernetes
Modern CI/CD in the microservices world with Kubernetes
Mikalai Alimenkou
 
Saga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices world
Mikalai Alimenkou
 
Effectiveness tips from Kubernetes trenches by Captain Obvious
Effectiveness tips from Kubernetes trenches by Captain Obvious
Mikalai Alimenkou
 
Ride the database in JUnit tests with Database Rider
Ride the database in JUnit tests with Database Rider
Mikalai Alimenkou
 
Wastful waste or why everything is so slow in development
Wastful waste or why everything is so slow in development
Mikalai Alimenkou
 
Hexagonal architecture with Spring Boot
Hexagonal architecture with Spring Boot
Mikalai Alimenkou
 
Wastful waste or why everything is so slow in development
Wastful waste or why everything is so slow in development
Mikalai Alimenkou
 
DevOps checklist or how to understand where is your team in DevOps landscape ...
DevOps checklist or how to understand where is your team in DevOps landscape ...
Mikalai Alimenkou
 
DevOps checklist or how to understand where is your team in DevOps landscape
DevOps checklist or how to understand where is your team in DevOps landscape
Mikalai Alimenkou
 
Практические трудности в разработке Медкарты для целой страны
Практические трудности в разработке Медкарты для целой страны
Mikalai Alimenkou
 
Hexagonal architecture with Spring Boot [EPAM Java online conference]
Hexagonal architecture with Spring Boot [EPAM Java online conference]
Mikalai Alimenkou
 
Bro, manage test data like a pro! [QA Fest 2018]
Bro, manage test data like a pro! [QA Fest 2018]
Mikalai Alimenkou
 
Agile antipatterns: review after 10 years of practice
Agile antipatterns: review after 10 years of practice
Mikalai Alimenkou
 
Hexagonal architecture with Spring Boot
Hexagonal architecture with Spring Boot
Mikalai Alimenkou
 
Bro, manage test data like a pro!
Bro, manage test data like a pro!
Mikalai Alimenkou
 
Бытовая классификация тестировщиков с точки зрения разработчика
Бытовая классификация тестировщиков с точки зрения разработчика
Mikalai Alimenkou
 
Code Review tool for personal effectiveness and waste analysis
Code Review tool for personal effectiveness and waste analysis
Mikalai Alimenkou
 
Funny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
Mikalai Alimenkou
 
Rise and fall of Story Points. Capacity based planning from the trenches.
Rise and fall of Story Points. Capacity based planning from the trenches.
Mikalai Alimenkou
 
Static analysis tools as the best friend of QA
Static analysis tools as the best friend of QA
Mikalai Alimenkou
 
Modern CI/CD in the microservices world with Kubernetes
Modern CI/CD in the microservices world with Kubernetes
Mikalai Alimenkou
 
Saga about distributed business transactions in microservices world
Saga about distributed business transactions in microservices world
Mikalai Alimenkou
 
Effectiveness tips from Kubernetes trenches by Captain Obvious
Effectiveness tips from Kubernetes trenches by Captain Obvious
Mikalai Alimenkou
 
Ride the database in JUnit tests with Database Rider
Ride the database in JUnit tests with Database Rider
Mikalai Alimenkou
 
Wastful waste or why everything is so slow in development
Wastful waste or why everything is so slow in development
Mikalai Alimenkou
 
Hexagonal architecture with Spring Boot
Hexagonal architecture with Spring Boot
Mikalai Alimenkou
 
Wastful waste or why everything is so slow in development
Wastful waste or why everything is so slow in development
Mikalai Alimenkou
 
DevOps checklist or how to understand where is your team in DevOps landscape ...
DevOps checklist or how to understand where is your team in DevOps landscape ...
Mikalai Alimenkou
 
DevOps checklist or how to understand where is your team in DevOps landscape
DevOps checklist or how to understand where is your team in DevOps landscape
Mikalai Alimenkou
 
Практические трудности в разработке Медкарты для целой страны
Практические трудности в разработке Медкарты для целой страны
Mikalai Alimenkou
 
Hexagonal architecture with Spring Boot [EPAM Java online conference]
Hexagonal architecture with Spring Boot [EPAM Java online conference]
Mikalai Alimenkou
 
Bro, manage test data like a pro! [QA Fest 2018]
Bro, manage test data like a pro! [QA Fest 2018]
Mikalai Alimenkou
 
Agile antipatterns: review after 10 years of practice
Agile antipatterns: review after 10 years of practice
Mikalai Alimenkou
 
Hexagonal architecture with Spring Boot
Hexagonal architecture with Spring Boot
Mikalai Alimenkou
 
Bro, manage test data like a pro!
Bro, manage test data like a pro!
Mikalai Alimenkou
 
Бытовая классификация тестировщиков с точки зрения разработчика
Бытовая классификация тестировщиков с точки зрения разработчика
Mikalai Alimenkou
 
Code Review tool for personal effectiveness and waste analysis
Code Review tool for personal effectiveness and waste analysis
Mikalai Alimenkou
 
Funny stories and anti-patterns from DevOps landscape
Funny stories and anti-patterns from DevOps landscape
Mikalai Alimenkou
 
Ad

Recently uploaded (20)

OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 

Design patterns in web testing automation with WebDriver