1. The Test Automation Toolbox-
Exploring Frameworks Built on
WebDriver-
The API for Browser Automation
By
Pallavi Sharma
2. Pallavi Sharma
Founder 5 Elements Learning &
Mosaic Words | Published Author |
Selenium Committer | WTM
Ambassador | Conservationist | ਸਬਰ
ਸ਼ੁਕਰ | #BeKind
3. ▪ Automation & Web Browser
▪ What is WebDriver
▪ Selenium and Client Bindings
▪ Ecosystem based on
Programming Language
▪ TAFs on WebDriver Protocol
▪ Questions /Discussions
5. Basics of Web
Browser
Automation
To understand basics of web browser
automation, we need to understand
first the following-
▪ What is a Web Browser
▪ What is a Web Application
▪ What is WebDriver Protocol
8. Basics of Web
Browser
• A Web Browser is a software application, which allows us to
explore the World Wide Web. It acts as an interface between
the web server and the end user.
• The information is shared over the HTTP protocol, and the
HTML page is rendered on the browser for the client to view.
• It is important that browsers are based on web standards
defined by W3C.
• Browsers like Chrome, Mozilla, Edge, Opera, Safari are
based on it.
• More on standards for browsers can be found here -
https://developer.mozilla.org/en-
US/docs/Learn/Getting_started_with_the_web/The_web_and
_web_standards
• To understand working of browser-
https://developer.chrome.com/blog/inside-browser-part1
9. Basics of Web Driver
“taken as it is from W3- ”
WebDriver is a remote-control interface that
enables introspection and control of user
agents. It provides a platform- and
language-neutral wire protocol as a way for
out-of-process programs to remotely instruct
the behavior of web browsers.
Drivers are created by the browser vendors
themselves and run with browser itself.
https://www.selenium.dev/ecosystem/
Web
Driver
Chrome
Driver
Chrome
Firefox
Driver
Firefox
Edge
Driver
Edge
Safari
Driver
Safari
Opera
Driver
Opera
https://www.w3.org/TR/webdriver2/
10. Important Links
▪ The WebDriver working draft is available here
– https://www.w3.org/TR/webdriver2/
▪ The WebDriver BiDi-
https://w3c.github.io/webdriver-bidi/
▪ Knowing about the Browser Testing and Tools
Working group can further help-
https://www.w3.org/groups/wg/browser-tools-
testing/
11. WebDriver & Selenium
WebDriver is a W3C standard that
provides a platform-neutral interface for
browser automation.
Key Facts:
• Created: 2004 (Selenium) + 2007
(WebDriver) = 2011 (Merged)
Selenium WebDriver
• Standardized: W3C standard since
2018
• Users: 5.1M+ active users worldwide
• Languages: Java, Python, C#, Ruby,
JavaScript, and more
13. Selenium automates web
browsers, that’s it.
How we use that power its
entirely up to us!
What is Selenium?
https://www.selenium.dev/
14. So What is Selenium?
A browser automation library based
on the WebDriver standard and is
driving WebDriver-BiDi standard
with other browser vendors and
tools.
Selenium Project-
https://github.com/orgs/SeleniumHQ
/repositories?type=all
Seleniu
m
Open
source
project
Browser
automation
library
Standard
for web
browser
automation
-
WebDriver
Tool to run
browser –
local/remot
e
Tool to run
browsers
in parallel
A group
working on
the next
WebDriver
Bi-Di
standard
15. What are Client Bindings
• The term "Selenium client binding" refers to
the libraries or APIs provided by Selenium to
support different programming languages.
• These bindings allow developers to write
Selenium scripts in the programming
language of their choice.
• Each of these bindings provides a set of
classes and methods that you can use to
interact the browser and its elements for your
work.
20. Web Application Automation- Page/Scenario Level
Web Page/Scenario
Automation
Creation
Browser
Manageme
nt
Element
Identificatio
n
Action on
Elements
Verify
Execution
Local Grid
Lab Cloud Vendor
21. Sample Script Work Flow
Problem
Statement
Outline of
Scenario
Launch
browser with
application
url
Perform
actions on
the elements
of the page/s.
Execute
Script
Close
browser
22. Define Problem
Statement
• Launch the Chrome Browser with
Application URL
https://5elementslearning.dev/demos
ite/
• Click on My Account link
• Close the browser
30. Selenide
Creator - Andrei Solntsev & Co
GitHub - https://github.com/selenide/selenide
Issues - https://github.com/selenide/selenide/issues
Contributors-
https://github.com/selenide/selenide/graphs/contributors
Used By -
https://github.com/selenide/selenide/network/dependents
Get Started - https://selenide.org/2014/10/01/how-to-
start-writing-ui-tests/
33. ATATA
Creator – Yevgeniy Shunevych
GitHub - https://github.com/atata-framework/atata
Issues - https://github.com/atata-
framework/atata/issues
Contributors- https://github.com/atata-
framework/atata/graphs/contributors
Used By - https://github.com/atata-
framework/atata/network/dependents
Get Started - https://github.com/atata-framework/atata
35. Selenium Base
Creator – Michael Mintz
GitHub- https://github.com/seleniumbase/SeleniumBase
Issues -
https://github.com/seleniumbase/SeleniumBase/issues
Contributors-
https://github.com/seleniumbase/SeleniumBase/graphs/cont
ributors
Used By -
https://github.com/seleniumbase/SeleniumBase/network/de
pendents
Get Started -
https://seleniumbase.io/help_docs/how_it_works/
38. Ruby Raider
Creator - Augustin Gottlieb
GitHub - https://github.com/RaiderHQ/ruby_raider
Issues -
https://github.com/RaiderHQ/ruby_raider/issues
Contributors-
https://github.com/RaiderHQ/ruby_raider/graphs/con
tributors
Get Started -
https://www.youtube.com/watch?v=JJd6I1qzZNs
40. WebDriverIO
Creator - Christian Bromann
GitHub - https://github.com/webdriverio/webdriverio
Issues –
https://github.com/webdriverio/webdriverio/issues
Contributors-
https://github.com/webdriverio/webdriverio/graphs/cont
ributors
Used By -
https://github.com/webdriverio/webdriverio/network/de
pendents
Get Started - https://webdriver.io/docs/gettingstarted/