Q13 of 37 · Selenium
Walk through how Selenium Manager (4.10+) replaces webdriver-manager.
Short answer
Short answer: Selenium Manager is built into Selenium 4.10+ and auto-detects the installed browser version, downloads the matching driver binary, caches it, and points the driver to it. You no longer need a third-party library or a manual chromedriver download.
Detail
Before 4.10, the canonical setup was either:
- Manually downloading chromedriver/geckodriver, putting it on PATH, hoping it matched the browser version.
- Adding a third-party library —
webdriver-manager(Java/Python) orwebdriver_manager(Python) — that downloaded the right driver at runtime.
This was painful because Chrome auto-updates faster than driver releases were checked in, and CI was constantly broken by version mismatches.
Selenium Manager (built into Selenium 4.10+) solves this entirely:
- When you call
new ChromeDriver()(or any driver), Selenium first looks for a driver on PATH. - If none is found, Selenium Manager runs: it detects your installed browser version, queries the official endpoints, downloads the matching driver to a cache (
~/.cache/selenium), and starts a session against it. - Subsequent runs use the cached driver — no network calls unless the browser version changed.
Bindings updates needed: nothing. The behaviour is automatic in 4.10+.
What this lets you delete from your project:
- The
webdriver-managerdependency frompom.xml/requirements.txt. - Any
WebDriverManager.chromedriver().setup();boilerplate. - Manual driver downloads in CI.
What it doesn't replace:
- Selenium Grid (still relevant for distributing tests).
- Browser installation itself — Selenium Manager provides drivers, not browsers (unless you use the
--browsersflag explicitly). - Full version pinning — if you need a specific driver version, you still set it manually.
The interview signal: knowing that 4.10 was the version, that webdriver-manager is now redundant, and that the change simplifies CI dramatically.
// EXAMPLE
// Pre-4.10 — needed third-party setup
// WebDriverManager.chromedriver().setup();
// WebDriver driver = new ChromeDriver();
// 4.10+ — Selenium Manager handles it
WebDriver driver = new ChromeDriver();
driver.get("https://example.com");
driver.quit();