Selenium Manager (Beta)

The Selenium Manager is a binary generated with Rust that manages driver installation.


Selenium bindings use this tool by default, so you do not need to download it or add anything to your code or do anything else to use it.

If, however, you need to access drivers with curl or a REST client, use one of the unofficial Selenium implementations, have special network requirements, or just want to better understand what the tool is doing, please continue reading.


The Selenium bindings use the Manager automatically so long as the following conditions are met:

  • The driver location isn’t specified in a Service class
  • A 3rd party driver manager is not installed
  • No drivers exist in directories included in the PATH Environment Variable

To use it with Selenium Grid:

  • Start the grid with this additional argument: --selenium-manager true


This tool is still in beta, and Selenium is slowly adding support for its features. The current implementation is a “fall-back” option, which means it should only get used if the code execution would otherwise fail. So long as you specify the location of the driver in the appropriate Service class (or using System Properties in Java), the Selenium Manager will not be used.


The first implementation of Selenium Manager was released in Selenium 4.6. We made an announcement about it on our blog.

  • Selenium 4.7 added support for IE Driver and improved error logging
  • Selenium 4.8 added support for beta and development versions of browsers
  • Selenium 4.9 added support for locating drivers based on provided location of browser binary


We are tracking the various features as a GitHub Project. The major features we are looking to support:

  • Proxies
  • Warning/fixing problems with drivers on PATH
  • Browser downloads based on browserVersion provided in capabilities


Specific values can be overridden by specifying environment variables or by using a config file located by default at ~/.cache/selenium/selenium-manager-config.toml.

CLIEnv VariableConfig File
–browser chromeSE_BROWSER=chromebrowser = “chrome”
–driver chromedriverSE_DRIVER=chromedriverdriver = “chromedriver”
–browser-version 106SE_BROWSER_VERSION=106browser-version = “106”
–driver-version 106.05249.61SE_DRIVER_VERSION=106.0.5249.61driver-version = “106.0.5249.61”
–browser-path /path/to/chromiumSE_BROWSER_PATH=/path/to/chromiumbrowser-path = “/path/to/chromium”
SE_OS=macosos = “macos”
SE_ARCH=x64arch = “x64”
–proxy user@pass:myproxy:8080SE_PROXY=user@pass:myproxy:8080proxy = “user@pass:myproxy:8080”
–browser-ttl 0SE_BROWSER_TTL=0browser-ttl = 0
–driver-ttl 86400SE_DRIVER_TTL=86400driver-ttl = 86400
SE_DRIVER_MIRROR=http://my-chromedriver-mirror.netdriver-mirror = “
SE_CACHE_PATH=/my/custom/cachecache-path = “/my/custom/cache”
–debugSE_DEBUG=truedebug true


Selenium Manager is written in Rust and compiled into binaries using GitHub Actions.