Selenium tests breaking after Chrome auto-updated? You need ChromeDriver matched to your exact Chrome version.
ChromeDriver is the official 64-bit WebDriver server that lets Selenium, Cypress, and Puppeteer drive a real Google Chrome browser through the W3C WebDriver protocol.
It runs as a single standalone executable on Windows, Linux, macOS, and ChromeOS - no installer, no admin rights, no dependencies.
Most "broken" Selenium tests are not broken code.
They are a version mismatch between your installed Chrome and your ChromeDriver binary.
Chrome 147 requires ChromeDriver 147. Chrome 146 requires ChromeDriver 146.
The major version must match exactly, or Selenium throws SessionNotCreatedException the second your test launches.
Open Chrome, click the three-dot menu, then Help > About Google Chrome. The first three digits (147, 146, 145) are your major version.
Download the matching ChromeDriver build from the link at the bottom of this page.
Why developers and QA engineers use ChromeDriver
- Native Selenium WebDriver integration for Python, Java, JavaScript, C#, and Ruby
- Real Chrome rendering, not a simulation - your tests see exactly what real users see
- Headless mode for CI/CD pipelines including Jenkins, GitHub Actions, GitLab CI, and CircleCI
- 64-bit Windows, Linux, macOS (Intel and Apple Silicon), and ChromeOS support
- Official Google Chrome for Testing builds, signed and verified
- Free and open-source with no licensing fees for commercial use
ChromeDriver version matching - what to download
This is where most developers get stuck. ChromeDriver releases are tied to Chrome major versions, and Google publishes them through the Chrome for Testing channel. The current stable matches:
- Chrome 147 needs ChromeDriver 147.0.7727.138 (latest, available on this page)
- Chrome 146 needs ChromeDriver 146.0.7680.165
- Chrome 145 needs ChromeDriver 145.0.7632.117
- Chrome 144 needs ChromeDriver 144.0.7559.133
If your Chrome is set to auto-update, your ChromeDriver should track Chrome's stable channel. Pin both versions explicitly in CI to prevent random pipeline failures the morning after a Chrome update.
Selenium quickstart - 5 lines of Python
After downloading ChromeDriver 147 from the link below, drop the executable into your project folder or anywhere on your PATH. Then:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service(executable_path="./chromedriver.exe")
driver = webdriver.Chrome(service=service)
driver.get("https://www.example.com")
If you are on Selenium 4.6 or newer, Selenium Manager will auto-resolve the binary for you. Pinning ChromeDriver locally is still faster, more reproducible, and survives offline CI runs - which is why most production test suites do it this way.
Pair ChromeDriver with the right Chrome build
Most testers run ChromeDriver against the standard Google Chrome install on their workstation, but a few setups solve real problems.
For parallel test environments where you do not want one Chrome update breaking everything, Google Chrome Portable lets you keep multiple Chrome versions side by side. Point ChromeDriver at the portable executable's path through ChromeOptions and you get isolated, version-pinned browsers without conflicts.
If you need an open-source build for compliance reviews or want to test on the upstream rendering engine, Chromium works with the same ChromeDriver binary as long as the major version numbers match.
For cross-browser testing, Microsoft Edge uses its own EdgeDriver but follows the identical W3C WebDriver protocol - your existing Selenium suites usually only need a different driver class to run against Edge as well.
ChromeDriver FAQ
What ChromeDriver version do I need for Chrome 147?
You need ChromeDriver 147.0.7727.138 for Chrome 147. The major version (147) must match. The build number can be slightly behind without breaking compatibility, but exact matching is safest for CI.
Is ChromeDriver 64-bit?
Yes. All current ChromeDriver builds are 64-bit on Windows, Linux, and macOS. Google stopped publishing 32-bit builds years ago. If you are still running 32-bit Windows for testing, you will need to upgrade the host OS before ChromeDriver will run.
Is ChromeDriver the same as Chrome WebDriver?
Yes - the names are interchangeable. "ChromeDriver" is the executable. "WebDriver" is the W3C protocol it implements. People searching for "chrome webdriver download" or "chromedriver download" land on the same binary.
How do I fix "session not created: This version of ChromeDriver only supports Chrome version X" errors?
Check your installed Chrome version (Help > About) and re-download the ChromeDriver that matches. The error is telling you exactly what is wrong - your driver and browser are out of sync.
How do I fix "DevToolsActivePort file doesn't exist" errors in Docker or Linux containers?
Add --no-sandbox and --disable-dev-shm-usage to your ChromeOptions. This is a Chrome sandbox issue inside containers, not a ChromeDriver problem.
Does ChromeDriver work with Selenium 4?
Yes - and Selenium 4.6+ includes Selenium Manager, which downloads the matching ChromeDriver automatically. You can still pin a local copy for speed and reproducibility, which most production CI pipelines do.
What is in the download
The download is a single ZIP archive containing chromedriver.exe on Windows or the chromedriver binary on Linux and macOS. It is around 9 to 10 MB depending on platform, requires no installation, and runs from any directory.
The build is sourced from Google's official Chrome for Testing channel, which is the only Google-supported source for ChromeDriver from version 115 onward.
