Q13 of 37 · Selenium

Walk through how Selenium Manager (4.10+) replaces webdriver-manager.

SeleniumMidseleniumselenium-managerdriverstooling

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:

  1. Manually downloading chromedriver/geckodriver, putting it on PATH, hoping it matched the browser version.
  2. Adding a third-party library — webdriver-manager (Java/Python) or webdriver_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:

  1. When you call new ChromeDriver() (or any driver), Selenium first looks for a driver on PATH.
  2. 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.
  3. 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-manager dependency from pom.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 --browsers flag 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();

// WHAT INTERVIEWERS LOOK FOR

Knowing the version (4.10), what Selenium Manager does (auto-detect browser, download matching driver, cache it), and what it lets you delete (webdriver-manager dependency).

// COMMON PITFALL

Still adding webdriver-manager to a Selenium 4.10+ project out of habit. It's harmless but redundant — and signals the candidate hasn't kept up with the toolchain.