To install Selenium WebDriver and avoid manually finding a matching driver, install Selenium 4.6 or later and create a local browser driver normally—for example, with webdriver.Chrome() in Python. Selenium includes Selenium Manager, which can detect the installed browser, resolve and download a compatible driver, and cache it for later sessions. If you see “Unable to locate driver,” first check your Selenium version and whether an old driver or explicit path is taking precedence.
Set up a local browser driver
- Install or upgrade your Selenium binding. In a Python project, use
pip install -U selenium; a virtual environment helps keep project dependencies isolated. For JavaScript and other languages, install the official Selenium binding for that language. Selenium Manager is included with Selenium, so a separate driver-manager package is not needed for the standard setup. Automatic driver management arrived in Selenium 4.6. Selenium Manager documentation and driver-location troubleshooting describe the current behavior. - Install or select a browser. For the basic local workflow, make the browser you want to automate available on the machine.
- Create WebDriver through the binding. Avoid hard-coding a driver executable path unless you have a reason to manage it explicitly.
Python
from selenium import webdriver
driver = webdriver.Chrome()
try:
driver.get("https://www.selenium.dev")
finally:
driver.quit()
JavaScript
const { Builder, Browser } = require('selenium-webdriver');
const driver = await new Builder().forBrowser(Browser.CHROME).build();
try {
await driver.get('https://www.selenium.dev');
} finally {
await driver.quit();
}
These examples use the ordinary binding patterns documented by Selenium. When a local driver is not already supplied, the binding invokes Selenium Manager as needed.
As an Amazon Associate I earn from qualifying purchases.
What Selenium Manager does on the first run
If it cannot use a driver provided through PATH or explicit configuration, Selenium Manager identifies the browser version, resolves a corresponding driver using browser-vendor metadata, downloads and unpacks it, and saves it in its cache. The default cache is ~/.cache/selenium. Later sessions can reuse the cached driver. The initial resolution may need network access; a cache does not guarantee that a missing asset can be obtained offline.
Recommended Free Tools
Selenium Manager is a fallback, not a guarantee that every driver setting will be ignored. A driver earlier on PATH, a configured Service path, or another driver manager can take precedence. An outdated manually supplied driver can therefore still cause a browser-version mismatch.
#1 Best Overall
Driver downloads and browser downloads are different
Selenium Manager can manage drivers without necessarily installing a missing browser. Selenium documents browser management starting at different Selenium versions for each browser:
| Browser | Browser-management threshold | Documented detail |
|---|---|---|
| Chrome | Selenium 4.11.0 | Uses Chrome for Testing. |
| Firefox | Selenium 4.12.0 | Uses public Firefox releases. |
| Edge | Selenium 4.14.0 | On Windows, automated installation requires administrator permissions because the installer is an MSI. |
Browser options can request a version or labels such as stable, beta, dev, or canary; Firefox also documents esr. Support and availability depend on the browser, platform, and requested version, so do not assume every combination can be downloaded. For predictable CI runs, specify and provision the browser version deliberately. See Selenium’s browser-management documentation.
Rank #2
Adjust Selenium Manager when defaults do not fit
Configuration can be passed as command-line arguments, placed in se-config.toml in the Selenium cache, or set with environment variables. Selenium documents precedence as command-line arguments, then configuration file, then environment variables. Relevant options can be passed through the binding’s browser options.
| Need | Documented setting | Use |
|---|---|---|
| Connect through a proxy | SE_PROXY or --proxy |
Configure access to the network through the required proxy. |
| Run without network requests | SE_OFFLINE=true or --offline |
Disable downloads and network requests; required assets must already be available or provisioned. |
| Move the cache | SE_CACHE_PATH or --cache-path |
Choose a different asset and metadata cache location. |
| Control versions | SE_BROWSER_VERSION, SE_DRIVER_VERSION, and browser-specific variants |
Request browser or driver versions where supported. |
| Choose a browser path | SE_BROWSER_PATH and binding-specific options |
Point to a browser installation where needed. |
| Opt out of anonymized usage statistics | SE_AVOID_STATS=true or avoid-stats = true |
Disable the statistics described in Selenium Manager’s documentation. |
The documented default metadata time-to-live is 3600 seconds (one hour). It controls reuse of version-discovery metadata, not how long the downloaded driver executable remains in the cache. Configuration names and behavior are documented in the Selenium Manager reference.
Rank #3
Troubleshoot driver setup
“Unable to locate driver” or driver executable not found
- Check that the project uses Selenium 4.6 or later.
- Confirm the browser is installed, or that the Selenium version supports managing that browser download.
- Check whether a proxy, firewall, offline setting, or missing cached asset is preventing resolution or download.
The driver supports a different browser version
- Inspect PATH for an older driver that Selenium can find first.
- Check for an explicit Service executable path or third-party manager configuration.
- Remove or update stale manual configuration, or deliberately pin and provision compatible browser and driver versions. Selenium Manager debug or logging output can help reveal which driver is selected.
The machine cannot reach the internet
Check whether the needed browser and driver are already cached or provision compatible assets in advance. If network access should work through a proxy, configure it. Offline mode disables requests and downloads; it cannot supply assets that are missing.
The browser is missing
Check the browser-specific management threshold and platform support. In particular, automated Edge installation on Windows requires administrator permissions.
Rank #4
The test runs on Grid or a remote browser service
A local WebDriver starts a driver service on the local machine. A remote session instead sends commands to Grid or another WebDriver endpoint, so browser and driver availability is a concern for the remote node or service, not merely the client machine. Grid documentation describes using Selenium Manager on nodes with --selenium-manager true. See Selenium Grid documentation.
The project uses older setup examples
For Selenium 4, use browser options classes and the binding’s Service object when customizing a local driver service. Do not treat old Desired Capabilities or a hard-coded executable path as the default setup. Consult the binding’s current API documentation; Selenium’s Selenium 4 upgrade guidance covers migration context.
Best Value
When to use automatic or explicit driver management
| Approach | Best fit | Trade-off |
|---|---|---|
| Selenium Manager default | Local development where the installed browser should be matched automatically. | Initial resolution may require network access, and the result follows the browser available unless versions are controlled. |
| Explicit PATH or Service path | Environments that deliberately pin and provision browser/driver versions, or need a specific executable. | You take responsibility for updates and compatibility. |
| Remote WebDriver/Grid | Tests where execution belongs on a Grid node or remote browser service. | The remote environment must have a usable browser and driver setup. |
Selenium’s documentation explains setup behavior but does not establish a measured speed or reliability advantage for one approach. Choose based on how you want to manage versions, network access, and execution location.
Or skip the browser setup
If your task is to capture a web page rather than interact with it as a browser test, ScreenshotNeo provides a screenshot API and MCP server. Its one-request API returns an image or PDF; see the ScreenshotNeo API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month, with no card.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Frequently Asked Questions
Do I need to install Selenium Manager separately?
No. Selenium Manager is included with Selenium; use Selenium 4.6 or later for built-in driver management.
Does Selenium Manager install Chrome, Firefox, or Edge automatically?
Browser management is separate from driver management and depends on Selenium version: Chrome from 4.11.0, Firefox from 4.12.0, and Edge from 4.14.0, subject to platform and version availability.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




