Node.js test automation framework for end-to-end, unit and component testing in browsers and mobile apps via WebDriver, BiDi and Appium.
SeleniumHQ/selenium
Selenium is an umbrella project of tools and libraries for automating web browsers through the W3C WebDriver standard.
- Stars
- 34,563
- Forks
- 8,730
- Open issues
- 196
- Last commit
- 18 hours ago
What is it?
Selenium provides the infrastructure for the W3C WebDriver specification, a platform- and language-neutral interface for controlling web browsers. It is used to script browsers for testing web applications or automating repetitive browser tasks.
The project covers multiple language bindings, including Java, Python, C#, JavaScript, Ruby and Rust, and works with all major web browsers. Browser drivers and Selenium Manager handle locating and configuring browsers and their drivers.
This repository is primarily aimed at contributors. It is built with Bazel, and includes guidance on local development setup, running tests by size and tag, and the release process.
Key features
- 01Implements the W3C WebDriver specification for cross-browser control.
- 02Offers bindings for Java, Python, C#, JavaScript, Ruby and Rust.
- 03Includes Selenium Manager for locating browsers and drivers.
- 04Supports headless mode in Chrome, Edge and Firefox.
- 05Builds with Bazel and provides test filtering by size and tag.
Use cases
- Writing end-to-end tests for web applications across several browsers.
- Automating repetitive browser tasks such as form filling or data collection.
- Building a browser testing infrastructure with Selenium Grid.
Quick start
- 1
Install Bazelisk, the Bazel wrapper
- 2
Install Java JDK 17 or greater and set JAVA_HOME
- 3
Build the Selenium Grid
bazel build grid
Things to know
- The README targets contributors; end users are directed to the separate User Manual.
- Building requires Bazel, a JDK 17+ and platform-specific toolchains, which is a heavy setup.
- Windows setup is involved and requires MSYS2 and Visual Studio build tools.
- Apple Silicon Macs may need a Rosetta configuration change.
In collections
Topics
FAQ
- What is selenium?
- Selenium is an umbrella project of tools and libraries for automating web browsers through the W3C WebDriver standard. Selenium provides the infrastructure for the W3C WebDriver specification, a platform- and language-neutral interface for controlling web browsers. It is used to script browsers for testing web applications or automating repetitive browser tasks.
- Is selenium free to use? What license does it have?
- selenium is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is selenium still maintained?
- Actively maintained. The last commit to selenium was on Oct 24, 2026.
- What can I use selenium for?
- Writing end-to-end tests for web applications across several browsers. Automating repetitive browser tasks such as form filling or data collection. Building a browser testing infrastructure with Selenium Grid.
- How do I install selenium?
- Install Bazelisk, the Bazel wrapper Install Java JDK 17 or greater and set JAVA_HOME Build the Selenium Grid: bazel build grid
- Where can I get selenium?
- The source code and installation instructions are on GitHub: https://github.com/SeleniumHQ/selenium
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Python library for automating Chromium, Firefox and WebKit browsers through a single API, with sync and async variants.
Playwright is a framework for web testing and automation that drives Chromium, Firefox, and WebKit through one API.
Midscene.js is a vision-driven E2E testing framework that lets you write UI test steps and assertions in natural language for web, mobile, and desktop apps.
An end-to-end testing framework for web and mobile apps that lets you describe test goals in natural language and drive the app with an agent.
A Python library for browser automation built on Selenium, letting you target elements by visible labels instead of selectors.