What’s New in Selenium Manager with Selenium 4.11
Selenium 4.11 added Chrome for Testing browser and driver management to Selenium Manager. Here’s what changed, how to use it, and what remains version-specific.
Selenium 4.11.0 added Chrome for Testing (CfT) support to Selenium Manager: it could resolve and download ChromeDriver using CfT endpoints, and it could discover, download, and cache CfT browser releases. In the 4.11-era behavior, Selenium Manager could fetch the current stable CfT browser when Chrome was not installed, or manage a requested version or channel through Selenium’s browserVersion capability. These are historical 4.11 details; Selenium Manager has continued to evolve, so consult the current Selenium Manager documentation for present behavior.
What changed in Selenium 4.11
Selenium Manager was already the driver-management fallback bundled with Selenium. Version 4.11 expanded its Chrome support in two related ways:
- ChromeDriver resolution through Chrome for Testing endpoints: Manager could use vendor metadata to find a driver compatible with the detected or requested Chrome version.
- Chrome for Testing browser management: if a suitable local Chrome was not found, Manager could discover, download, and cache a CfT browser. The 4.11 feature article describes the current stable release being cached under
~/.cache/selenium/chromeon typical Unix-like systems.
The release announcement also called out driver discovery on PATH or a configured path, compatibility checks, and improved warnings and errors. This helped surface situations where an installed driver no longer matched an automatically updated browser.
How Selenium Manager fits into a Selenium session
Selenium Manager is a Rust command-line tool shipped with Selenium. The language bindings invoke it when a driver has not otherwise been provided. In practice, a session setup can follow this path:
- Your Selenium binding receives the browser options and requested version.
- If you have not supplied a driver, the binding invokes Selenium Manager.
- Manager checks available browser and driver information, including local paths and version metadata.
- For the 4.11 Chrome workflow, it resolves the matching ChromeDriver and can manage a corresponding CfT browser when needed.
- Downloaded artifacts are unpacked and cached for later use.
Manual driver management and third-party driver managers remain valid alternatives. Selenium Manager is a fallback, not a requirement to abandon an existing setup. The 4.11 browser-download announcement specifically concerned Chrome for Testing; do not assume that the same 4.11 feature covered Firefox or Edge. Check current documentation for current browser coverage.
Use Selenium 4.11 to request Chrome
Install Selenium 4.11.0 in the language binding you use, then create a Chrome session without passing a driver executable. The following examples show the shape of the configuration. They intentionally request the stable channel rather than a fixed historical version; what a particular installed Selenium release resolves is version-dependent.
Python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.browser_version = "stable"
driver = webdriver.Chrome(options=options)
try:
driver.get("https://example.com")
print(driver.title)
finally:
driver.quit()
To request a fixed version instead, set options.browser_version to the version string you need, for example "115" for a historical 4.11-era illustration. Do not use that example as a current version recommendation.
Java
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Main {
public static void main(String[] args) {
ChromeOptions options = new ChromeOptions();
options.setBrowserVersion("stable");
WebDriver driver = new ChromeDriver(options);
try {
driver.get("https://example.com");
System.out.println(driver.getTitle());
} finally {
driver.quit();
}
}
}
JavaScript
const { Builder } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
(async function main() {
const options = new chrome.Options().setBrowserVersion('stable');
const driver = await new Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.build();
try {
await driver.get('https://example.com');
console.log(await driver.getTitle());
} finally {
await driver.quit();
}
})();
For Selenium .NET, Ruby, or other bindings, use the binding’s Chrome options API to set the browser version and allow the binding to manage the driver when none is explicitly supplied. Capability and constructor details vary across binding releases; use examples and API references that match the Selenium package version you installed.
Version and channel choices
| Request | Meaning in the 4.11 feature description | Good fit |
|---|---|---|
stable |
Use the stable channel, checking for a matching local Chrome and managing CfT if it is not found. | Routine runs that follow stable Chrome. |
beta, dev, canary |
Request a named Chrome channel; Manager checks locally and can manage the corresponding CfT release if needed. | Pre-release compatibility checks. |
| A version string | Request a particular browser version; if it is not installed, the 4.11 workflow could manage the corresponding CfT release and ChromeDriver. | Reproducible test environments and browser-version matrices. |
Exact resolution depends on Selenium Manager’s metadata and the release you run. Pin the Selenium package itself in CI, record the requested browser version, and check the current Manager documentation before relying on channel or version behavior in a newer release.
Driver management choices
| Approach | Who handles matching? | Considerations |
|---|---|---|
| Selenium Manager fallback | Selenium Manager discovers or obtains a compatible driver when the binding has not been given one. | Convenient defaults; downloads require network access on a cold cache. |
Driver on PATH or configured location |
You install and update the driver; Selenium 4.11 Manager could inspect it and warn about possible incompatibility. | Useful for controlled images, but browser auto-updates can create version drift. |
| Third-party driver manager | The chosen tool resolves and supplies the driver. | Retain it when it is part of your environment; avoid having multiple managers unexpectedly select different binaries. |
Choose one clear owner for driver selection in each environment. If you provide a driver explicitly, that can bypass the normal fallback path, so a stale executable may continue to cause session creation failures.
Common errors and fixes
| Symptom | Likely cause | What to do |
|---|---|---|
session not created: This version of ChromeDriver only supports Chrome version 113 |
The selected driver and browser versions do not match. The version numbers here are a historical example. | Check the browser version and which driver executable is actually selected. Remove or update a stale PATH driver, or stop explicitly configuring it so Selenium Manager can resolve the driver for the browser. |
Manager reports a possible incompatibility with the driver on PATH |
A locally installed driver may not fit the detected browser, for example after Chrome updated automatically. | Inspect the warning’s executable path. Update or remove that driver, then retry with the intended Selenium Manager fallback. |
| Browser or driver download fails | The environment cannot reach the required metadata or download endpoints, or a proxy/firewall blocks the request. | Allow outbound access required by the Selenium Manager version, configure the environment’s proxy as appropriate, or provision compatible artifacts in the image and use the managed path deliberately. |
| A requested version or channel is not resolved as expected | The capability may not be reaching the binding, or the installed Selenium release may differ from the 4.11 behavior described here. | Confirm the exact Selenium package version and inspect the effective browser options. Consult documentation for that release. |
| Works locally but fails in a container or CI job | Different PATH, permissions, network access, cache location, or browser installation between environments. |
Log the selected browser and driver paths, ensure the cache directory is writable, and make the runtime image’s network and browser policy explicit. |
Performance, reliability, and cost
On a cold environment, browser and driver resolution may require metadata checks and downloads, so the first session can take longer and needs working network access. Cached artifacts avoid repeating those downloads when the same environment and cache are reused. Ephemeral CI workers may lose the cache between jobs; persisting the Selenium cache can reduce repeated setup work, subject to your environment’s version and security policy.
Pinning the Selenium binding and requesting a deliberate browser version improves repeatability. A moving channel such as stable is convenient but can change over time. For reliability, capture the resolved versions in CI logs and keep a known-good path for diagnosing mismatches. Selenium Manager itself does not add a Selenium license fee; infrastructure costs can include CI time, network transfer, and storage for cached browser artifacts.
Or skip the browser setup
If your task is to collect page screenshots rather than drive an interactive browser, ScreenshotNeo provides a website screenshot API and MCP server. One GET request returns an image or PDF. See the 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
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({
access_key: 'YOUR_API_KEY',
url: 'https://stripe.com'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
- Cookie banners are accepted and removed before capture; the service also removes known consent platforms, newsletter popups, and chat widgets. Each step can be turned off.
- Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. Response headers report the page verdict and billing status.
- An MCP server provides
take_screenshot,get_page_info, andcapture_pdftools for AI agents and MCP clients. - The free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 screenshots.
Sign up for 1,000 free screenshots a month, with no card required.
What to remember about Selenium 4.11
- 4.11 brought Chrome for Testing endpoint support for ChromeDriver and automated CfT browser management.
- Its Chrome workflow included stable, beta, dev, canary, and fixed-version requests through
browserVersion. - Selenium Manager is the bundled fallback when a driver has not been supplied; manual and third-party management remain options.
- These are 4.11-era claims. Selenium Manager’s behavior and browser coverage can change, so check current documentation for present-day setup.
FAQ
Was Selenium Manager introduced in Selenium 4.11?
No. The 4.11 milestone added the described Chrome for Testing support and browser management to the existing bundled manager.
Does Selenium 4.11 download Firefox and Edge browsers automatically?
The 4.11 feature article described automated browser management for Chrome for Testing and treated Firefox and Edge support as future work at that time. Check current documentation for later changes.
Do I need to delete a driver I already installed?
Not always. Keep it if you intentionally manage versions yourself. If Selenium selects a stale driver from PATH, update or remove it so the intended management path can take effect.
Is a channel request the same as pinning a version?
No. A channel follows a release channel, while a fixed version expresses a specific version request. Channels can move as new releases appear.


