Repolode
SergeyPirogov

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. 1

    Install the package with pip

    pip install webdriver-manager
  2. 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