A Selenium WebDriver client library for Rust, used to write automated UI tests for websites.
SergeyPirogov/webdriver_manager
Python library that downloads, caches, and resolves Selenium browser driver binaries such as ChromeDriver and GeckoDriver from code.
- Stars
- 2,180
- Forks
- 484
- Open issues
- 4
- Last commit
- 13 days ago
What is it?
webdriver-manager is a Python library for managing browser driver binaries used with Selenium. Instead of downloading a driver by hand, unpacking it, and hardcoding its path, you can install the required driver directly from Python code, and the library returns the binary path for Selenium to use.
It covers ChromeDriver, EdgeChromiumDriver, GeckoDriver, IEDriver, and OperaDriver, with examples for both Selenium 3 and Selenium 4. Chromium and Brave are supported through a chrome_type option. Drivers are cached in a user-level directory by default, with options to store them in the project root, set a custom cache location, change cache validity, pin a driver version, or use a mirror URL.
The library is aimed at cases where Selenium's built-in Selenium Manager is not enough, such as older Selenium versions, CI or Docker image pre-downloads, corporate proxy or SSL restrictions, and custom OS or architecture detection. It also exposes hooks for a custom logger and a custom HTTP client.
Key features
- 01Installs and caches ChromeDriver, EdgeChromiumDriver, GeckoDriver, IEDriver, and OperaDriver from Python code.
- 02Returns the driver binary path for use with Selenium 3 and Selenium 4.
- 03Supports Chromium and Brave through a chrome_type option.
- 04Allows pinning a driver version and customizing cache location and validity.
- 05Supports custom download mirrors, OS or architecture overrides, and a custom HTTP client.
Use cases
- Running Selenium 3 or older Selenium 4 projects that lack Selenium Manager.
- Pre-downloading drivers during Docker image builds or CI setup.
- Working behind a corporate proxy or with restricted network access to driver downloads.
- Pinning a specific driver version for reproducible test runs.
Quick start
- 1
Install the package with pip
pip install webdriver-manager - 2
Import ChromeDriverManager and install the driver in your Selenium Chrome setup
Things to know
- Selenium Manager is recommended by the README for most modern Selenium 4.6+ projects, so this library is mainly for explicit control or older setups.
- Internet Explorer and Opera support is provided only for legacy compatibility.
- Not intended for Android or PyDroid local browser automation.
In collections
Topics
FAQ
- What is webdriver_manager?
- Python library that downloads, caches, and resolves Selenium browser driver binaries such as ChromeDriver and GeckoDriver from code. webdriver-manager is a Python library for managing browser driver binaries used with Selenium. Instead of downloading a driver by hand, unpacking it, and hardcoding its path, you can install the required driver directly from Python code, and the library returns the binary path for Selenium to use.
- Is webdriver_manager free to use? What license does it have?
- webdriver_manager is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is webdriver_manager still maintained?
- Actively maintained. The last commit to webdriver_manager was on Oct 25, 2026.
- What can I use webdriver_manager for?
- Running Selenium 3 or older Selenium 4 projects that lack Selenium Manager. Pre-downloading drivers during Docker image builds or CI setup. Working behind a corporate proxy or with restricted network access to driver downloads. Pinning a specific driver version for reproducible test runs.
- How do I install webdriver_manager?
- Install the package with pip: pip install webdriver-manager Import ChromeDriverManager and install the driver in your Selenium Chrome setup
- Where can I get webdriver_manager?
- The source code and installation instructions are on GitHub: https://github.com/SergeyPirogov/webdriver_manager
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Python library for browser automation built on Selenium, letting you target elements by visible labels instead of selectors.
Selenium is an umbrella project of tools and libraries for automating web browsers through the W3C WebDriver standard.
Node.js test automation framework for end-to-end, unit and component testing in browsers and mobile apps via WebDriver, BiDi and Appium.
Browser and desktop automation extension with a macro recorder, JavaScript API, OCR, image recognition, and an MCP server for AI assistants.
MCP server that lets AI agents browse and inspect Firefox through WebDriver BiDi, for agentic browsing and developer-tool debugging.