Skip to content
Selenium WebDriver · error message

Selenium: NoSuchDriverException: Unable to obtain driver for chrome

ConfigurationDrivers & browser start-up

Last verified

The exact message
selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for chrome; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location

What it means

Selenium could not find or obtain a driver executable for the browser you requested. Since Selenium 4.6, if no driver is on PATH and none is configured, Selenium runs Selenium Manager to detect the browser and download the matching driver. This exception means that whole process failed. Earlier Selenium 4 releases worded it Unable to obtain driver for chrome using Selenium Manager.; current releases end the message with a link to Selenium's driver location troubleshooting page.

Selenium Manager needs to identify the browser version and reach the driver download endpoints. Behind a corporate proxy or firewall, in offline CI, on unsupported architectures, or when the bundled selenium-manager binary is missing from a broken install, it cannot. A hard-coded driver path pointing at a file that does not exist produces the same exception.

What is not wrong: your test code and the browser itself, unless the browser is also missing.

What it looks like

import logging
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

logging.getLogger("selenium").setLevel(logging.DEBUG)

# Default: let Selenium Manager resolve the driver
driver = webdriver.Chrome()

# Offline / locked-down CI: use a pre-installed driver
# driver = webdriver.Chrome(service=Service("/opt/drivers/chromedriver"))

Why it happens

  • The machine cannot reach the driver download endpoints (proxy, firewall, offline CI).
  • An explicit driver path points to a file that does not exist or is not executable.
  • The selenium-manager binary is missing from the installed package (corrupted or partial install).
  • The browser is not installed and Selenium Manager could not download one.
  • Running on an architecture or OS that Selenium Manager does not support for that browser.

How to fix it

  1. Upgrade Selenium to the current release; many early Selenium Manager bugs are fixed.
  2. Turn on logging to see Selenium Manager's output (in Python, set the selenium logger to DEBUG).
  3. Behind a proxy, set HTTPS_PROXY for the process, or pre-download the driver and point to it with Service(executable_path=...).
  4. Remove hard-coded driver paths that point to missing files.
  5. Reinstall the binding in a clean virtual environment if the selenium-manager binary is missing.

How to stop it recurring

In networks that block downloads, bake the browser and matching driver into the CI image and reference them explicitly. Elsewhere, rely on Selenium Manager with an up-to-date Selenium. Keep a start-up smoke test so driver resolution problems fail fast and clearly.

Official documentation: www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location. See all Selenium error messages.

Related errors

Definitions

Quick answers

What does "NoSuchDriverException: Unable to obtain driver for chrome" mean in Selenium?

Selenium could not find or obtain a driver executable for the browser you requested. Since Selenium 4.6, if no driver is on PATH and none is configured, Selenium runs Selenium Manager to detect the browser and download the matching driver. This exception means that whole process failed. Earlier Selenium 4 releases worded it Unable to obtain driver for chrome using Selenium Manager.

How do I fix "NoSuchDriverException: Unable to obtain driver for chrome"?

1. Upgrade Selenium to the current release; many early Selenium Manager bugs are fixed. 2. Turn on logging to see Selenium Manager's output (in Python, set the selenium logger to DEBUG). 3. Behind a proxy, set HTTPS_PROXY for the process, or pre-download the driver and point to it with Service(executable_path=...). 4. Remove hard-coded driver paths that point to missing files. 5. Reinstall the binding in a clean virtual environment if the selenium-manager binary is missing.

Run browser automation you can watch and take over

Autonoly runs each job in a real cloud Chromium browser driven by Playwright. Timeouts and detached elements still happen; the difference is that you can watch the run live, see the step that failed, and take control of the browser to finish it.

Also see Live browser control.