selenium
A browser automation framework and ecosystem.
Selenium, the browser automation umbrella
Selenium is an umbrella project of tools and libraries for web browser automation, built around the W3C WebDriver specification, and its README speaks to contributors.
The umbrella
The README calls Selenium an umbrella project encapsulating a variety of tools and libraries that enable web browser automation. It provides infrastructure for the W3C WebDriver specification, a platform and language neutral coding interface compatible with all major web browsers. Volunteer contributors donated thousands of hours to keep it going.
Who the README is for
This README is aimed at developers who want to contribute. People looking to use Selenium are pointed to the user manual for examples and to the get help resources when stuck.
Setting up to contribute
A local dev environment needs Bazelisk, a Bazel wrapper that downloads the version named in a config file, and a Java JDK of version 17 or greater. The README walks through verifying the JDK and lays out separate notes for macOS, Windows, and alternative setups like GitPod or a dev container, with macOS noting Rosetta for Apple Silicon and Windows covering MSYS2 and Visual Studio.
Building with Bazel
Selenium is built with Bazel so dependencies, binaries, packages, and tests are handled in one place, with a Rake wrapper run through the ./go command. The README covers the common Bazel commands and warns about worktree output bases leaking stale files.
Language bindings
The README keeps per language sections. Java work leans on IntelliJ and the Bazel IJ plugin with Google Java Format for linting, Python follows PEP8 at a 120 character line length enforced by ruff, and Ruby gets a debugging setup with an interactive console via bazel run.
Community notes