SlideShare a Scribd company logo
1 of 31
Download to read offline
Selenium Manager: Automated
Driver & Browser Management
for Selenium WebDriver
SeleniumConf Chicago
March 29, 2023
Boni García
boni.garcia@uc3m.es https://bonigarcia.dev
@boni_gg https://github.com/bonigarcia
What is Selenium?
What is Selenium?
(in software development)
What is Selenium?
What is Selenium?
https://app.wooclap.com/CRQSUO
What is Selenium?
https://www.selenium.dev/about/
Selenium WebDriver Selenium IDE Selenium Grid
Library Plugin Infrastructure
What is Selenium?
• Selenium WebDriver is the heart of the Selenium project and it is
often known as simply Selenium
Selenium is a browser automation library
What is NOT Selenium?
• Selenium is NOT a testing framework
• Selenium is NOT a testing library
How can I do
“testing” with
Selenium?
Testing with Selenium – Browsers
• First we need one or more browsers to be driven with Selenium
- Local
- Remote
- Cloud
Testing with Selenium – Binding Languages
• Selenium provides a cross-browser Application Programming
Interface (API) in several programming languages
We need to choose a
Selenium binding language
Testing with Selenium – Unit Testing Framework
Test
Setup
Verify
Teardown
Verdict
initialize
interact
Exercise System Under
Test (SUT)
Expected value
Real outcome
(from SUT)
Comparator
assertion
finalize
Testing with Selenium – Drivers
Browser
Driver
Test using the
Selenium
WebDriver API
chromedriver
geckodriver
W3C WebDriver
Firefox
Chrome
native support
Edge
msedgedriver
Driver Management
1. Download
2. Setup
3. Maintenance
Driver Management - Download
https://chromedriver.chromium.org/
downloads https://github.com/mozilla/geckodriver/
releases
https://developer.microsoft.com/en-
us/microsoft-edge/tools/webdriver/
Driver Management - Setup
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
System.setProperty("webdriver.edge.driver", "/path/to/msedgedriver");
chromedriver geckodriver msedgedriver
PATH
(environment variable)
• Modern web browsers are evergreen
chromedriver
98.0.4758.102
Chrome 98
…
chromedriver
98.0.4758.102
Chrome 99
…
chromedriver
98.0.4758.102
Chrome 100
this version of chromedriver only supports
Chrome version 98
Driver Management - Maintenance
Driver Management - Maintenance
Automated Driver Management
Automated driver management and other
helper features for Selenium WebDriver in Java
https://bonigarcia.dev/webdrivermanager/
Automated Driver Management
https://stackoverflow.com/questions/7450416/selenium-2-chrome-driver/29580245
• Why I created WebDriverManager?
- To help my students at University developing Selenium Manager tests
Automated Driver Management
• The “managers” for Selenium WebDriver:
webdriver-manager
https://www.npmjs.com/package/webdriver-manager
webdriver-manager
https://pypi.org/project/webdriver-manager
WebDriverManager.Net
https://github.com/rosolko/WebDriverManager.Net
webdrivers
https://github.com/titusfortner/webdrivers
What did the Selenium project think about it?
https://www.selenium.dev/blog/2021/selenium-survey-results/
• On 2021, the Selenium project published the results of the
first official Selenium survey
Respondents
wanted batteries
included
The official manager for Selenium
• From May 2022 to March 2023, I joined Sauce Labs as Staff
Software Engineer in the Open Source Program Office
- I become a Selenium committer on August 2022
- My main contribution so far has been the development of
Selenium Manager
https://opensource.saucelabs.com/
Selenium Manager
• Selenium Manager is a tool aimed to provide automated
driver and browser management for Selenium
https://www.selenium.dev/blog/2022/introducing-selenium-manager/
Selenium Manager
was first released
on November 2022
Selenium Manager
• It is a CLI (Command-Line Interface) tool
- To provide a universal interface through the shell
• It has been developed in Rust
- To allow cross platform execution
• It has been created reusing the experience of previous managers
Selenium Manager
Selenium Manager
• Browser version discovery
- Using shell commands
• Driver version discovery
- Using online info by drivers maintainers
• Driver download
- Using an HTTP client with configutable setup (proxy, timeout)
• Local cache (~/.cache/selenium/)
- For drivers binaries
• Local metadata
- For discovered driver versions during a time-to-live (TTL)
Selenium Manager – Selenium WebDriver
• As of version 4.6, each release of Selenium WebDriver is shipped with
Selenium Manager
Selenium Manager is
used as a fallback in
Selenium WebDriver
Selenium Manager – Selenium Grid
• Also, latest versions of Selenium Grid can use Selenium Manager to
manage drivers automatically
Selenium Manager can
be explicitly used (opt-in)
in Selenium Grid
Who is using Selenium Manager?
• WebDriverManager usage statistics:
https://oss.sonatype.org/
Who is using Selenium Manager?
https://app.wooclap.com/CRQSUO
What about Browser Management?
• The next big feature of Selenium Manager, i.e., automated
browser management, is not implemented yet
Other Possible Future Features
• CLI helper tool for Selenium
- For instance: creating project scaffolding from the shell
• Integration with docker-selenium
- To provide browsers in Docker containers for Selenium
WebDriver in a seamless manner
Feedback and
ideas is more
than welcome!
Selenium Manager: Automated
Driver & Browser Management
for Selenium WebDriver
Thank you very much!
Q&A
Boni García
boni.garcia@uc3m.es https://bonigarcia.dev
@boni_gg https://github.com/bonigarcia

More Related Content

What's hot

Modules in AngularJs
Modules in AngularJsModules in AngularJs
Modules in AngularJsK Arunkumar
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOPDzmitry Naskou
 
Introducing BDD and TDD with Cucumber
Introducing BDD and TDD with CucumberIntroducing BDD and TDD with Cucumber
Introducing BDD and TDD with CucumberKnoldus Inc.
 
TestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKETestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKEAbhishek Yadav
 
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdfInjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf정민 안
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot frameworkPrayoch Rujira
 
Wordpress Plugin Development Short Tutorial
Wordpress Plugin Development Short TutorialWordpress Plugin Development Short Tutorial
Wordpress Plugin Development Short TutorialChristos Zigkolis
 
Routing & Navigating Pages in Angular 2
Routing & Navigating Pages in Angular 2Routing & Navigating Pages in Angular 2
Routing & Navigating Pages in Angular 2Knoldus Inc.
 
Introduction to django framework
Introduction to django frameworkIntroduction to django framework
Introduction to django frameworkKnoldus Inc.
 
SOLID Principles and The Clean Architecture
SOLID Principles and The Clean ArchitectureSOLID Principles and The Clean Architecture
SOLID Principles and The Clean ArchitectureMohamed Galal
 

What's hot (20)

PPT KOTLIN DASAR.pptx
PPT KOTLIN DASAR.pptxPPT KOTLIN DASAR.pptx
PPT KOTLIN DASAR.pptx
 
Swift vs Objective-C
Swift vs Objective-CSwift vs Objective-C
Swift vs Objective-C
 
Modules in AngularJs
Modules in AngularJsModules in AngularJs
Modules in AngularJs
 
Automation Testing by Selenium Web Driver
Automation Testing by Selenium Web DriverAutomation Testing by Selenium Web Driver
Automation Testing by Selenium Web Driver
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
 
Introducing BDD and TDD with Cucumber
Introducing BDD and TDD with CucumberIntroducing BDD and TDD with Cucumber
Introducing BDD and TDD with Cucumber
 
Test NG Framework Complete Walk Through
Test NG Framework Complete Walk ThroughTest NG Framework Complete Walk Through
Test NG Framework Complete Walk Through
 
TestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKETestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKE
 
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdfInjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
 
Ruin your life using robot framework
Ruin your life using robot frameworkRuin your life using robot framework
Ruin your life using robot framework
 
Python
PythonPython
Python
 
TestNG Framework
TestNG Framework TestNG Framework
TestNG Framework
 
Java Annotations
Java AnnotationsJava Annotations
Java Annotations
 
Django PPT.pptx
Django PPT.pptxDjango PPT.pptx
Django PPT.pptx
 
Wordpress Plugin Development Short Tutorial
Wordpress Plugin Development Short TutorialWordpress Plugin Development Short Tutorial
Wordpress Plugin Development Short Tutorial
 
Routing & Navigating Pages in Angular 2
Routing & Navigating Pages in Angular 2Routing & Navigating Pages in Angular 2
Routing & Navigating Pages in Angular 2
 
Introduction to django framework
Introduction to django frameworkIntroduction to django framework
Introduction to django framework
 
SOLID Principles and The Clean Architecture
SOLID Principles and The Clean ArchitectureSOLID Principles and The Clean Architecture
SOLID Principles and The Clean Architecture
 
Introduction to java 8 stream api
Introduction to java 8 stream apiIntroduction to java 8 stream api
Introduction to java 8 stream api
 
JPA For Beginner's
JPA For Beginner'sJPA For Beginner's
JPA For Beginner's
 

Similar to Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver

Selenium Overview
Selenium OverviewSelenium Overview
Selenium Overviewkhanhdang
 
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Simplilearn
 
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
 
Demystifying Selenium framework
Demystifying Selenium frameworkDemystifying Selenium framework
Demystifying Selenium frameworkkunalgate125
 
Python selenium
Python seleniumPython selenium
Python seleniumDucat
 
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...Simplilearn
 
Selenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesSelenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesVijay Rangaiah
 
Selenium online training nareshit
Selenium online training nareshitSelenium online training nareshit
Selenium online training nareshitAvinashNareshIT
 
Test Automation Using Selenium
Test Automation Using SeleniumTest Automation Using Selenium
Test Automation Using SeleniumNikhil Kapoor
 
Testing world selenium_start_chapter1 (1)
Testing world selenium_start_chapter1 (1)Testing world selenium_start_chapter1 (1)
Testing world selenium_start_chapter1 (1)Testing World
 
Introduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleIntroduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleSpringPeople
 
automation with python and selenium
automation with python and seleniumautomation with python and selenium
automation with python and seleniumManish Kumar
 
Getting started with Selenium 2
Getting started with Selenium 2Getting started with Selenium 2
Getting started with Selenium 2Sebastiano Armeli
 

Similar to Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver (20)

Selenium Overview
Selenium OverviewSelenium Overview
Selenium Overview
 
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
Selenium WebDriver Tutorial | Selenium WebDriver Tutorial For Beginner | Sele...
 
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 ...
 
11-01-2023.pptx
11-01-2023.pptx11-01-2023.pptx
11-01-2023.pptx
 
Demystifying Selenium framework
Demystifying Selenium frameworkDemystifying Selenium framework
Demystifying Selenium framework
 
Python selenium
Python seleniumPython selenium
Python selenium
 
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
 
Selenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesSelenium Presentation at Engineering Colleges
Selenium Presentation at Engineering Colleges
 
Selenium
SeleniumSelenium
Selenium
 
Selenium
SeleniumSelenium
Selenium
 
Selenium online training nareshit
Selenium online training nareshitSelenium online training nareshit
Selenium online training nareshit
 
Test Automation Using Selenium
Test Automation Using SeleniumTest Automation Using Selenium
Test Automation Using Selenium
 
Testing world selenium_start_chapter1 (1)
Testing world selenium_start_chapter1 (1)Testing world selenium_start_chapter1 (1)
Testing world selenium_start_chapter1 (1)
 
Introduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleIntroduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeople
 
automation with python and selenium
automation with python and seleniumautomation with python and selenium
automation with python and selenium
 
Selenium&scrapy
Selenium&scrapySelenium&scrapy
Selenium&scrapy
 
Getting started with Selenium 2
Getting started with Selenium 2Getting started with Selenium 2
Getting started with Selenium 2
 
Intro
IntroIntro
Intro
 
Introduction to selenium
Introduction to seleniumIntroduction to selenium
Introduction to selenium
 
Selenium presentation
Selenium presentationSelenium presentation
Selenium presentation
 

More from Boni García

WebDriverManager: the Swiss Army Knife for Selenium WebDriver
WebDriverManager: the Swiss Army Knife for Selenium WebDriverWebDriverManager: the Swiss Army Knife for Selenium WebDriver
WebDriverManager: the Swiss Army Knife for Selenium WebDriverBoni García
 
Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5Boni García
 
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-JupiterToolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-JupiterBoni García
 
Extending WebDriver: A cloud approach
Extending WebDriver: A cloud approachExtending WebDriver: A cloud approach
Extending WebDriver: A cloud approachBoni García
 
A Proposal to Orchestrate Test Cases
A Proposal to Orchestrate Test CasesA Proposal to Orchestrate Test Cases
A Proposal to Orchestrate Test CasesBoni García
 
Introducción y novedades de JUnit 5 (04/07/2018)
Introducción y novedades de JUnit 5 (04/07/2018)Introducción y novedades de JUnit 5 (04/07/2018)
Introducción y novedades de JUnit 5 (04/07/2018)Boni García
 
User Impersonation as a Service in End-to-End Testing
User Impersonation as a Service in End-to-End TestingUser Impersonation as a Service in End-to-End Testing
User Impersonation as a Service in End-to-End TestingBoni García
 
Introducción y novedades de JUnit 5 (16/01/2018)
Introducción y novedades de JUnit 5 (16/01/2018)Introducción y novedades de JUnit 5 (16/01/2018)
Introducción y novedades de JUnit 5 (16/01/2018)Boni García
 
WebRTC Testing: State of the Art
WebRTC Testing: State of the ArtWebRTC Testing: State of the Art
WebRTC Testing: State of the ArtBoni García
 
ElasTest: an elastic platform for testing complex distributed large software ...
ElasTest: an elastic platform for testing complex distributed large software ...ElasTest: an elastic platform for testing complex distributed large software ...
ElasTest: an elastic platform for testing complex distributed large software ...Boni García
 
Analysis of video quality and end-to-end latency in WebRTC
Analysis of video quality and end-to-end latency in WebRTCAnalysis of video quality and end-to-end latency in WebRTC
Analysis of video quality and end-to-end latency in WebRTCBoni García
 
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...Boni García
 
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96Boni García
 
Cloud Instances of Kurento v6 on FIWARE Lab
Cloud Instances of Kurento v6 on FIWARE LabCloud Instances of Kurento v6 on FIWARE Lab
Cloud Instances of Kurento v6 on FIWARE LabBoni García
 
Kurento v6 Development Guide
Kurento v6 Development GuideKurento v6 Development Guide
Kurento v6 Development GuideBoni García
 
Kurento v6 Installation Guide
Kurento v6 Installation GuideKurento v6 Installation Guide
Kurento v6 Installation GuideBoni García
 
Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)Boni García
 

More from Boni García (18)

WebDriverManager: the Swiss Army Knife for Selenium WebDriver
WebDriverManager: the Swiss Army Knife for Selenium WebDriverWebDriverManager: the Swiss Army Knife for Selenium WebDriver
WebDriverManager: the Swiss Army Knife for Selenium WebDriver
 
Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5Developing Selenium tests with JUnit 5
Developing Selenium tests with JUnit 5
 
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-JupiterToolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
 
Extending WebDriver: A cloud approach
Extending WebDriver: A cloud approachExtending WebDriver: A cloud approach
Extending WebDriver: A cloud approach
 
A Proposal to Orchestrate Test Cases
A Proposal to Orchestrate Test CasesA Proposal to Orchestrate Test Cases
A Proposal to Orchestrate Test Cases
 
Introducción y novedades de JUnit 5 (04/07/2018)
Introducción y novedades de JUnit 5 (04/07/2018)Introducción y novedades de JUnit 5 (04/07/2018)
Introducción y novedades de JUnit 5 (04/07/2018)
 
User Impersonation as a Service in End-to-End Testing
User Impersonation as a Service in End-to-End TestingUser Impersonation as a Service in End-to-End Testing
User Impersonation as a Service in End-to-End Testing
 
Introducción y novedades de JUnit 5 (16/01/2018)
Introducción y novedades de JUnit 5 (16/01/2018)Introducción y novedades de JUnit 5 (16/01/2018)
Introducción y novedades de JUnit 5 (16/01/2018)
 
WebRTC Testing: State of the Art
WebRTC Testing: State of the ArtWebRTC Testing: State of the Art
WebRTC Testing: State of the Art
 
ElasTest: an elastic platform for testing complex distributed large software ...
ElasTest: an elastic platform for testing complex distributed large software ...ElasTest: an elastic platform for testing complex distributed large software ...
ElasTest: an elastic platform for testing complex distributed large software ...
 
Analysis of video quality and end-to-end latency in WebRTC
Analysis of video quality and end-to-end latency in WebRTCAnalysis of video quality and end-to-end latency in WebRTC
Analysis of video quality and end-to-end latency in WebRTC
 
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
 
NUBOMEDIA Webinar
NUBOMEDIA WebinarNUBOMEDIA Webinar
NUBOMEDIA Webinar
 
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
 
Cloud Instances of Kurento v6 on FIWARE Lab
Cloud Instances of Kurento v6 on FIWARE LabCloud Instances of Kurento v6 on FIWARE Lab
Cloud Instances of Kurento v6 on FIWARE Lab
 
Kurento v6 Development Guide
Kurento v6 Development GuideKurento v6 Development Guide
Kurento v6 Development Guide
 
Kurento v6 Installation Guide
Kurento v6 Installation GuideKurento v6 Installation Guide
Kurento v6 Installation Guide
 
Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)
 

Recently uploaded

Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
Folding Cheat Sheet #3 - third in a series
Folding Cheat Sheet #3 - third in a seriesFolding Cheat Sheet #3 - third in a series
Folding Cheat Sheet #3 - third in a seriesPhilip Schwarz
 
OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata
 
SPSS Statistics - Encrypting a Syntax File in IBM SPSS Statistics.pptx
SPSS Statistics - Encrypting a Syntax File in IBM SPSS Statistics.pptxSPSS Statistics - Encrypting a Syntax File in IBM SPSS Statistics.pptx
SPSS Statistics - Encrypting a Syntax File in IBM SPSS Statistics.pptxVersion 1 Analytics
 
full course of software engineering mid term.pdf
full course of software engineering mid term.pdffull course of software engineering mid term.pdf
full course of software engineering mid term.pdfAbdul salam
 
kawika Technologies Software Development company
kawika Technologies Software Development  companykawika Technologies Software Development  company
kawika Technologies Software Development companyKawika Technologies
 
What are the core components of Azure Data Engineer courses.docx
What are the core components of Azure Data Engineer courses.docxWhat are the core components of Azure Data Engineer courses.docx
What are the core components of Azure Data Engineer courses.docxkzayra69
 
OpenChain Monthly Meeting North America and Asia - 2024-03-19
OpenChain Monthly Meeting North America and Asia - 2024-03-19OpenChain Monthly Meeting North America and Asia - 2024-03-19
OpenChain Monthly Meeting North America and Asia - 2024-03-19Shane Coughlan
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxSasikiranMarri
 
Reliable from-source builds (Qshare 28 Nov 2023).pdf
Reliable from-source builds (Qshare 28 Nov 2023).pdfReliable from-source builds (Qshare 28 Nov 2023).pdf
Reliable from-source builds (Qshare 28 Nov 2023).pdfRalf Gommers
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Preparing BitVisor for Supporting Multiple Architectures
Preparing BitVisor for Supporting Multiple ArchitecturesPreparing BitVisor for Supporting Multiple Architectures
Preparing BitVisor for Supporting Multiple ArchitecturesAke Koomsin
 
ManageIQ - Sprint 234 Review - Slide Deck
ManageIQ - Sprint 234 Review - Slide DeckManageIQ - Sprint 234 Review - Slide Deck
ManageIQ - Sprint 234 Review - Slide DeckManageIQ
 
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...Bert Jan Schrijver
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsDEEPRAJ PATHAK
 
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...OnePlan Solutions
 
The State of the Green IT at the beginning of 2024
The State of the Green IT at the beginning of 2024The State of the Green IT at the beginning of 2024
The State of the Green IT at the beginning of 2024Artur Skowroński
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
What is the Oracle Database Buffer Cache
What is the Oracle Database Buffer CacheWhat is the Oracle Database Buffer Cache
What is the Oracle Database Buffer CacheRemote DBA Services
 

Recently uploaded (20)

Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
Folding Cheat Sheet #3 - third in a series
Folding Cheat Sheet #3 - third in a seriesFolding Cheat Sheet #3 - third in a series
Folding Cheat Sheet #3 - third in a series
 
OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024OpenMetadata Community Meeting - 4th April, 2024
OpenMetadata Community Meeting - 4th April, 2024
 
SPSS Statistics - Encrypting a Syntax File in IBM SPSS Statistics.pptx
SPSS Statistics - Encrypting a Syntax File in IBM SPSS Statistics.pptxSPSS Statistics - Encrypting a Syntax File in IBM SPSS Statistics.pptx
SPSS Statistics - Encrypting a Syntax File in IBM SPSS Statistics.pptx
 
full course of software engineering mid term.pdf
full course of software engineering mid term.pdffull course of software engineering mid term.pdf
full course of software engineering mid term.pdf
 
kawika Technologies Software Development company
kawika Technologies Software Development  companykawika Technologies Software Development  company
kawika Technologies Software Development company
 
What are the core components of Azure Data Engineer courses.docx
What are the core components of Azure Data Engineer courses.docxWhat are the core components of Azure Data Engineer courses.docx
What are the core components of Azure Data Engineer courses.docx
 
OpenChain Monthly Meeting North America and Asia - 2024-03-19
OpenChain Monthly Meeting North America and Asia - 2024-03-19OpenChain Monthly Meeting North America and Asia - 2024-03-19
OpenChain Monthly Meeting North America and Asia - 2024-03-19
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
 
Reliable from-source builds (Qshare 28 Nov 2023).pdf
Reliable from-source builds (Qshare 28 Nov 2023).pdfReliable from-source builds (Qshare 28 Nov 2023).pdf
Reliable from-source builds (Qshare 28 Nov 2023).pdf
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Preparing BitVisor for Supporting Multiple Architectures
Preparing BitVisor for Supporting Multiple ArchitecturesPreparing BitVisor for Supporting Multiple Architectures
Preparing BitVisor for Supporting Multiple Architectures
 
ManageIQ - Sprint 234 Review - Slide Deck
ManageIQ - Sprint 234 Review - Slide DeckManageIQ - Sprint 234 Review - Slide Deck
ManageIQ - Sprint 234 Review - Slide Deck
 
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
AmsterdamJUG April 2024 - Going serverless with Quarkus GraalVM native images...
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software Projects
 
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
Transform your Corporate Strategy Office - Harness OnePlan’s Strategic Portfo...
 
The State of the Green IT at the beginning of 2024
The State of the Green IT at the beginning of 2024The State of the Green IT at the beginning of 2024
The State of the Green IT at the beginning of 2024
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
What is the Oracle Database Buffer Cache
What is the Oracle Database Buffer CacheWhat is the Oracle Database Buffer Cache
What is the Oracle Database Buffer Cache
 

Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver

  • 1. Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver SeleniumConf Chicago March 29, 2023 Boni García boni.garcia@uc3m.es https://bonigarcia.dev @boni_gg https://github.com/bonigarcia
  • 3. What is Selenium? (in software development) What is Selenium?
  • 5. What is Selenium? https://www.selenium.dev/about/ Selenium WebDriver Selenium IDE Selenium Grid Library Plugin Infrastructure
  • 6. What is Selenium? • Selenium WebDriver is the heart of the Selenium project and it is often known as simply Selenium Selenium is a browser automation library
  • 7. What is NOT Selenium? • Selenium is NOT a testing framework • Selenium is NOT a testing library How can I do “testing” with Selenium?
  • 8. Testing with Selenium – Browsers • First we need one or more browsers to be driven with Selenium - Local - Remote - Cloud
  • 9. Testing with Selenium – Binding Languages • Selenium provides a cross-browser Application Programming Interface (API) in several programming languages We need to choose a Selenium binding language
  • 10. Testing with Selenium – Unit Testing Framework Test Setup Verify Teardown Verdict initialize interact Exercise System Under Test (SUT) Expected value Real outcome (from SUT) Comparator assertion finalize
  • 11. Testing with Selenium – Drivers Browser Driver Test using the Selenium WebDriver API chromedriver geckodriver W3C WebDriver Firefox Chrome native support Edge msedgedriver
  • 12. Driver Management 1. Download 2. Setup 3. Maintenance
  • 13. Driver Management - Download https://chromedriver.chromium.org/ downloads https://github.com/mozilla/geckodriver/ releases https://developer.microsoft.com/en- us/microsoft-edge/tools/webdriver/
  • 14. Driver Management - Setup System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver"); System.setProperty("webdriver.edge.driver", "/path/to/msedgedriver"); chromedriver geckodriver msedgedriver PATH (environment variable)
  • 15. • Modern web browsers are evergreen chromedriver 98.0.4758.102 Chrome 98 … chromedriver 98.0.4758.102 Chrome 99 … chromedriver 98.0.4758.102 Chrome 100 this version of chromedriver only supports Chrome version 98 Driver Management - Maintenance
  • 16. Driver Management - Maintenance
  • 17. Automated Driver Management Automated driver management and other helper features for Selenium WebDriver in Java https://bonigarcia.dev/webdrivermanager/
  • 18. Automated Driver Management https://stackoverflow.com/questions/7450416/selenium-2-chrome-driver/29580245 • Why I created WebDriverManager? - To help my students at University developing Selenium Manager tests
  • 19. Automated Driver Management • The “managers” for Selenium WebDriver: webdriver-manager https://www.npmjs.com/package/webdriver-manager webdriver-manager https://pypi.org/project/webdriver-manager WebDriverManager.Net https://github.com/rosolko/WebDriverManager.Net webdrivers https://github.com/titusfortner/webdrivers
  • 20. What did the Selenium project think about it? https://www.selenium.dev/blog/2021/selenium-survey-results/ • On 2021, the Selenium project published the results of the first official Selenium survey Respondents wanted batteries included
  • 21. The official manager for Selenium • From May 2022 to March 2023, I joined Sauce Labs as Staff Software Engineer in the Open Source Program Office - I become a Selenium committer on August 2022 - My main contribution so far has been the development of Selenium Manager https://opensource.saucelabs.com/
  • 22. Selenium Manager • Selenium Manager is a tool aimed to provide automated driver and browser management for Selenium https://www.selenium.dev/blog/2022/introducing-selenium-manager/ Selenium Manager was first released on November 2022
  • 23. Selenium Manager • It is a CLI (Command-Line Interface) tool - To provide a universal interface through the shell • It has been developed in Rust - To allow cross platform execution • It has been created reusing the experience of previous managers Selenium Manager
  • 24. Selenium Manager • Browser version discovery - Using shell commands • Driver version discovery - Using online info by drivers maintainers • Driver download - Using an HTTP client with configutable setup (proxy, timeout) • Local cache (~/.cache/selenium/) - For drivers binaries • Local metadata - For discovered driver versions during a time-to-live (TTL)
  • 25. Selenium Manager – Selenium WebDriver • As of version 4.6, each release of Selenium WebDriver is shipped with Selenium Manager Selenium Manager is used as a fallback in Selenium WebDriver
  • 26. Selenium Manager – Selenium Grid • Also, latest versions of Selenium Grid can use Selenium Manager to manage drivers automatically Selenium Manager can be explicitly used (opt-in) in Selenium Grid
  • 27. Who is using Selenium Manager? • WebDriverManager usage statistics: https://oss.sonatype.org/
  • 28. Who is using Selenium Manager? https://app.wooclap.com/CRQSUO
  • 29. What about Browser Management? • The next big feature of Selenium Manager, i.e., automated browser management, is not implemented yet
  • 30. Other Possible Future Features • CLI helper tool for Selenium - For instance: creating project scaffolding from the shell • Integration with docker-selenium - To provide browsers in Docker containers for Selenium WebDriver in a seamless manner Feedback and ideas is more than welcome!
  • 31. Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver Thank you very much! Q&A Boni García boni.garcia@uc3m.es https://bonigarcia.dev @boni_gg https://github.com/bonigarcia