The Selenium Manager command-line interface provides comprehensive browser and driver management capabilities through a single executable.
selenium-manager [OPTIONS]struct Cli {
/// Browser name (chrome, firefox, edge, iexplorer, safari, safaritp, or webview2)
browser: Option<String>,
/// Driver name (chromedriver, geckodriver, msedgedriver, IEDriverServer, or safaridriver)
driver: Option<String>,
/// Selenium Grid. If version is not provided, the latest version is downloaded
grid: Option<String>,
/// Driver version (e.g., 106.0.5249.61, 0.31.0, etc.)
driver_version: Option<String>,
/// Major browser version (e.g., 105, 106, etc. Also: beta, dev, canary, nightly, esr)
browser_version: Option<String>,
/// Browser path (absolute) for browser version detection
browser_path: Option<String>,
}struct Cli {
/// HTTP proxy for network connection (e.g., https://myproxy.net:8080)
proxy: Option<String>,
/// Timeout for network requests (in seconds)
timeout: u64, // default: 300
/// Offline mode (disabling network requests and downloads)
offline: bool,
}struct Cli {
/// Output type: LOGGER, JSON, SHELL, or MIXED
output: String, // default: "LOGGER"
/// Display DEBUG messages
debug: bool,
/// Display TRACE messages
trace: bool,
/// Level for output messages: info, debug, trace, warn, error
log_level: Option<String>,
}struct Cli {
/// Local folder for downloaded assets [default: ~/.cache/selenium]
cache_path: Option<String>,
/// TTL (time-to-live) for discovered versions
ttl: u64, // default: 3600
/// Clear cache folder (~/.cache/selenium)
clear_cache: bool,
/// Clear metadata file (~/.cache/selenium/selenium-manager.json)
clear_metadata: bool,
/// Force to download browser (even when browser is already in the system)
force_browser_download: bool,
/// Avoid to download browser (even when browser-version is specified)
avoid_browser_download: bool,
}struct Cli {
/// Operating system (windows, linux, or macos)
os: Option<String>,
/// System architecture (x32, x64, or arm64)
arch: Option<String>,
/// Mirror for driver repositories
driver_mirror_url: Option<String>,
/// Mirror for browser repositories
browser_mirror_url: Option<String>,
}struct Cli {
/// Selenium language bindings (Java, JavaScript, Python, DotNet, Ruby)
language_binding: Option<String>,
/// Avoid sends usage statistics to plausible.io
avoid_stats: bool,
/// Not using drivers found in the PATH
skip_driver_in_path: bool,
/// Not using browsers found in the PATH
skip_browser_in_path: bool,
}# Download ChromeDriver for Chrome
selenium-manager --browser chrome
# Download GeckoDriver for Firefox with specific version
selenium-manager --browser firefox --browser-version 119
# Use specific browser path for version detection
selenium-manager --browser chrome --browser-path "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"# Download specific driver version
selenium-manager --driver chromedriver --driver-version 119.0.6045.105
# Use EdgeDriver
selenium-manager --driver msedgedriver# Download latest Selenium Grid JAR
selenium-manager --grid
# Download specific Grid version
selenium-manager --grid 4.15.0# Use custom cache directory
selenium-manager --browser chrome --cache-path /tmp/selenium-cache
# Enable debug output with JSON format
selenium-manager --browser firefox --output JSON --debug
# Use proxy and custom timeout
selenium-manager --browser edge --proxy https://proxy.example.com:8080 --timeout 600
# Offline mode (use cache only)
selenium-manager --browser chrome --offline
# Force download even if browser exists
selenium-manager --browser chrome --force-browser-download# Use custom driver mirror
selenium-manager --browser chrome --driver-mirror-url https://npm.taobao.org/mirrors/chromedriver/
# Use custom browser mirror
selenium-manager --browser chrome --browser-mirror-url https://registry.npmmirror.com/-/binary/chromium-browser-snapshots/Human-readable output with log levels (INFO, WARN, DEBUG, etc.)
Structured JSON output for programmatic consumption
Unix-like shell output format
DEBUG/INFO to stderr, minimal JSON to stdout
0 (OK): Success65 (DATAERR): Input data error69 (UNAVAILABLE): Service unavailableSelenium Manager supports configuration via:
SE_ prefix~/.cache/selenium/se-config.tomlCommon error scenarios and their handling: