← New search

Other meanings of Selenium

Software

Selenium (software)

Selenium is an open-source test automation framework for web applications, enabling developers and testers to write scripts that simulate user interactions across multiple browsers and operating systems. It supports major browsers such as Google Chrome, Mozilla Firefox, Safari, and Microsoft Edge, and provides bindings for popular programming languages including Java, Python, C#, and JavaScript. The project is maintained by the Selenium Open Source community and is widely used in continuous integration pipelines for regression testing.

30k+
Stars on GitHub
GitHub Stars
500+
Contributors on GitHub
Contributors
Chrome, Firefox, Safari, Edge, Opera
Supported browsers
Browsers
1

Overview and history

Selenium was originally created by Jason Huggins at ThoughtWorks in 2004 as an internal tool to automate testing of a web application. 1 The project was open-sourced the same year and quickly gained traction. By 2007, the Selenium WebDriver project was developed by Simon Stewart at Google, merging the original Selenium RC with a more modern approach that directly controls the browser via native APIs. 2 This eliminated the need for a JavaScript-based injection layer, improving speed and reliability. In 2008, the two projects merged into what is now Selenium 2.0, combining Selenium RC's flexibility with WebDriver's direct browser control. 3 The latest major version, Selenium 4, introduced relative locators, improved Grid scalability, and support for the W3C WebDriver standard, making it the de facto choice for web automation across industries.

2

Architecture and components

Selenium consists of four main components: the Selenium WebDriver, Selenium IDE, Selenium Grid, and the legacy Selenium RC. 2 The WebDriver provides a programming interface to control the browser, sending commands via the W3C WebDriver protocol to the browser's native automation support. Selenium IDE is a browser extension for recording and playback of test scripts, useful for rapid prototyping. Selenium Grid enables parallel execution of tests across multiple machines and browsers, reducing run time for large test suites. 4 Selenium RC, now deprecated, was the original JavaScript-based approach. The architecture supports a wide range of languages and browser drivers, making it highly adaptable to different testing environments. 5

3

Use in industry and integration

Selenium is widely adopted in software quality assurance for functional, regression, and cross-browser testing. 3 It integrates with popular test frameworks like JUnit, TestNG, and NUnit, and with continuous integration tools such as Jenkins, GitLab CI, and CircleCI. 1 Many organizations use Selenium together with cloud-based testing services like BrowserStack and Sauce Labs to run tests on hundreds of browser–OS combinations. 4 The Page Object Model (POM) design pattern is commonly employed to maintain test scripts and reduce duplication. 5 Despite its power, Selenium has limitations: it cannot handle CAPTCHAs, file downloads, or native OS dialogs without additional tools, and it is not suitable for performance testing.

4

Lesser-known aspects

Beyond the mainstream usage, Selenium has several niche applications. It is sometimes used for web scraping and data extraction, though this is discouraged by the project's terms of use. 1 The Selenium WebDriver has been adapted to automate mobile browsers on Android and iOS through the Appium project, which extends the WebDriver protocol. 3 Another lesser-known fact is that Selenium 4 introduced support for relative locators (e.g., "above", "below", "near"), which simplify locating elements in complex layouts. 2 The project also includes a headless mode for running tests without a visible UI, useful for server environments. Early versions of Selenium employed a technique called "Selenium Core" that injected JavaScript into the browser, a method now obsolete. 4 Additionally, the name "Selenium" was chosen as a humorous antidote to mercury poisoning, reflecting the original project's intent to combat the "toxic" nature of manual testing. 3

Glossary

WebDriver
The core component of Selenium that provides a programming interface to control a web browser via native APIs.
Selenium Grid
A tool that allows parallel execution of tests across multiple machines and browsers.
Selenium IDE
A browser extension for recording and playback of test scripts.
Page Object Model
A design pattern that creates an object repository for web UI elements, reducing code duplication.
W3C WebDriver
The standardized protocol for browser automation, adopted by Selenium 4.

Originally developed by Jason Huggins at ThoughtWorks in 2004.