Install & Compatibility
Where this runs
tested against v4.1.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.426s · 22.4MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 2.3s · import 0.392s · 23MB
21MB installed
● package 21MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ChromeDriverManager
✓ from webdriver_manager.chrome import ChromeDriverManager
GeckoDriverManager
✓ from webdriver_manager.firefox import GeckoDriverManager
EdgeChromiumDriverManager
✓ from webdriver_manager.microsoft import EdgeChromiumDriverManager
OperaDriverManager
✓ from webdriver_manager.opera import OperaDriverManager
✗ from webdriver_manager.chrome import OperaDriverManager
OperaDriverManager is often confused as being part of the chrome submodule, but it resides in its own 'opera' submodule.
This quickstart demonstrates how to use `webdriver-manager` to automatically obtain the correct Chrome driver, then integrate it with `selenium` to launch a browser, navigate to a URL, and print its title. Replace `ChromeDriverManager` with `GeckoDriverManager` for Firefox, `EdgeChromiumDriverManager` for Edge, etc.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# Automatically download and install the correct ChromeDriver
driver_path = ChromeDriverManager().install()
# Initialize the Chrome service with the installed driver
service = Service(driver_path)
# Initialize the Chrome WebDriver
driver = webdriver.Chrome(service=service)
# Example usage: navigate to a page
driver.get("https://www.google.com")
print(f"Page title: {driver.title}")
# Close the browser
driver.quit()
webdriver-manager --version
Debug
Known issues
breakingVersion 4.0.0 introduced significant internal refactoring of driver classes. While the primary `.install()` method generally remained stable, custom or advanced integrations with internal driver manager components may require updates.fixReview the official documentation and adapt custom code for changes in internal driver class structure if you were interacting with private APIs.
affects: >=4.0.0
gotchaPrior to v4.0.0, the library could raise unhandled `NameError` or `TypeError` exceptions if running offline or if it failed to detect the installed browser's version, leading to script failures.fixUpgrade to `webdriver-manager` v4.0.0 or newer to benefit from improved error handling, network resilience, and better browser detection.
affects: <4.0.0
gotchaUsers working with Chrome browser versions less than 113 might encounter issues with driver downloads due to changes in Chrome's driver distribution method. This was specifically addressed in `webdriver-manager` v4.0.1.fixEnsure `webdriver-manager` is at least v4.0.1 to correctly handle driver downloads for older Chrome browser versions.
affects: <4.0.1 (when targeting Chrome < 113)
gotchaChromedriver download URLs for Apple M1/M2 (ARM) Macs changed, causing download failures for users on this architecture with `webdriver-manager` versions prior to v3.8.4.fixUpgrade to `webdriver-manager` v3.8.4 or newer for correct Chromedriver downloads on Apple M1/M2/ARM architectures.
affects: <3.8.4 (on M1/M2 Macs)
Errors
Common errors & fixes
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH
Selenium cannot find the ChromeDriver executable because it's not in the system's PATH, often indicating that `webdriver-manager` was not used correctly or failed to provide the driver's path.
fixEnsure `webdriver-manager` is correctly integrated by passing the installed driver's path to Selenium's `Service` object.
webdriver_manager.core.driver_manager.DriverNotFoundError: No such driver found for chrome=XX.X.XXXX.XX
`webdriver-manager` could not find a compatible driver for the specific version of your browser (e.g., Chrome) installed on the system, often because the browser is too new or too old for the `webdriver-manager` version.
fixUpdate `webdriver-manager` to the latest version, then retry running your Selenium code.
ModuleNotFoundError: No module named 'webdriver_manager'
The `webdriver-manager` library is not installed in the Python environment being used, or there is a typo in the import statement.
fixInstall the library using pip in your active Python environment.
PermissionError: [Errno 13] Permission denied: '/path/to/driver/executable'
The Python process lacks the necessary write permissions to create or extract the driver executable into the default cache directory or a specified custom path.
fixSpecify an accessible cache directory for `webdriver-manager` to store the driver executables.
Upgrade
Version history
4.1.2latest on PyPI · released Jun 4, 2026
Audit
Dependencies
requestsrequiredUsed for making HTTP requests to download driver executables.
packagingrequiredUsed for parsing and comparing version numbers.
tqdmoptionalOptional dependency for displaying download progress bars.