webdriver-manager
Library provides the way to automatically manage drivers for different browsers
What it is and what it does
webdriver-manager is a Python library that automates the download, caching, and resolution of browser driver binaries. Instead of manually downloading driver binaries, unpacking them, and hardcoding file paths in your code, you call a manager class from Python to retrieve the correct driver for your OS and browser. The library handles version detection, platform-specific binary selection, and local caching so drivers are reused across runs. It supports ChromeDriver, EdgeChromiumDriver, GeckoDriver, IEDriver, and OperaDriver across Windows, macOS, and Linux.
The package is designed for scenarios where you need explicit control over driver management—supporting older Selenium versions, pinning specific driver versions, customizing cache locations, using custom download mirrors, working around network restrictions, or managing alternative Chromium-based browsers. The description notes that for modern Selenium 4.6+ projects with standard browser setups, Selenium Manager (built into Selenium) is the recommended default; webdriver-manager is most useful when that automatic approach is insufficient or when you want to integrate driver setup directly into your Python code.
Use it for:
- Supporting Selenium 3 or older Selenium 4 projects that predate automatic driver management.
- Pre-downloading and caching drivers in CI or Docker images to avoid repeated downloads during test runs.
- Pinning or resolving a specific driver version independently of the browser version on the system.
- Working around corporate proxies, SSL restrictions, or custom download URLs by configuring custom driver sources.
- Managing alternative Chromium-based browsers alongside standard Chrome.
- Debugging driver resolution and download behavior explicitly when automatic approaches are opaque.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Automatically downloads, caches, and manages browser driver binaries for browser automation, resolving the need to manually handle driver installation and paths.
Yes, if you are using Selenium 3, early Selenium 4, or need explicit control over driver versions, caching, and download sources. No if you are on Selenium 4.6+ with standard browsers—use the built-in alternative instead. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license; the decision hinges on whether you need the control it offers.
Install
webdriver-manager on PyPI
pip
pip install webdriver-manageruv
uv add webdriver-managerpoetry
poetry add webdriver-managerInstalling webdriver-manager
Before you install
Low friction install with three lightweight runtime dependencies (requests, python-dotenv, packaging). The package is actively maintained with a recent release on 2026-06-04 and has accumulated 2185 GitHub stars, indicating stable, well-used code.
License in practice
Apache-2.0 is a permissive license allowing commercial and private use with minimal restrictions, making this package straightforward to adopt in most projects.
Quickstart
pip install webdriver-manager
from webdriver_manager.chrome import ChromeDriverManager
driver_path = ChromeDriverManager().install()
Requires a browser and corresponding driver binary to be available on the system; the package downloads and caches the driver but does not include browsers themselves.
Verify before relying
- Whether cached drivers persist across Python environments or require re-download in isolated CI/container setups.
- Performance impact of driver resolution and download on first-run or when cache invalidation occurs.
- Compatibility with Selenium versions prior to 3.x or after 4.x.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — requests, python-dotenv, packaging |
| Maintenance | actively maintained — 71 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 11,626,213/month — #1,377 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: webdriver_manager-4.1.2-py3-none-any.whl
Keywords: testing, selenium, driver, test automation
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
chromedriver-pyDownloads and installs the appropriate…
permissive · top 15,000 on PyPI
seleniumSelenium provides Python bindings to automate…
permissive · top 1,000 on PyPI
chromedriver-binaryDownloads and installs the chromedriver binary…
permissive · top 15,000 on PyPI
selenium-page-factoryImplements a page factory pattern for Selenium…
permissive · top 15,000 on PyPI
seletoolsProvides helper functions for Selenium…
permissive · top 15,000 on PyPI
chromedriver-autoinstallerAutomatically downloads and installs the…
permissive · top 15,000 on PyPI
geckodriver-autoinstallerAutomatically downloads and installs…
permissive · top 5,000 on PyPI
zendriverZendriver is an async-first web automation…
agpl · top 15,000 on PyPI
marionette-driverMarionette Driver provides a Python client for…
copyleft · top 15,000 on PyPI
browserstack-sdkA Python SDK for running Selenium WebDriver…
unclear · top 15,000 on PyPI