The Selenium Browser Automation Project

Selenium is an umbrella project for a range of tools and librariesthat enable and support the automation of web browsers.

It provides extensions to emulate user interaction with browsers,a distribution server for scaling browser allocation,and the infrastructure for implementations of theW3C WebDriver specificationthat lets you write interchangeable code for all major web browsers.

This project is made possible by volunteer contributorswho have put in thousands of hours of their own time,and made the source codefreely availablefor anyone to use, enjoy, and improve.

Selenium brings together browser vendors, engineers, and enthusiaststo further an open discussion around automation of the web platform.The project organisesan annual conferenceto teach and nurture the community.

At the core of Selenium isWebDriver,an interface to write instruction sets that can be run interchangeably in manybrowsers. Once you’ve installed everything, only a few lines of code get you insidea browser. You can find a more comprehensive example inWriting your first Selenium script

packagedev.selenium.hello;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassHelloSelenium{publicstaticvoidmain(String[]args){WebDriverdriver=newChromeDriver();driver.get("https://selenium.dev");driver.quit();}}
fromseleniumimportwebdriverdriver=webdriver.Chrome()driver.get("http://selenium.dev")driver.quit()
usingOpenQA.Selenium.Chrome;namespaceSeleniumDocs.Hello;publicstaticclassHelloSelenium{publicstaticvoidMain(){vardriver=newChromeDriver();driver.Navigate().GoToUrl("https://selenium.dev");driver.Quit();}}
require'selenium-webdriver'driver=Selenium::WebDriver.for:chromedriver.get'https://selenium.dev'driver.quit
const{Builder,Browser}=require('selenium-webdriver');(asyncfunctionhelloSelenium(){letdriver=awaitnewBuilder().forBrowser(Browser.CHROME).build();awaitdriver.get('https://selenium.dev');awaitdriver.quit();})();
packagedev.selenium.helloimportorg.openqa.selenium.chrome.ChromeDriverfunmain(){valdriver=ChromeDriver()driver.get("https://selenium.dev")driver.quit()}

See theOverview to check the different projectcomponents and decide if Selenium is the right tool for you.

You should continue on toGetting Startedto understand how you can install Selenium and successfully use it as a testautomation tool, and scaling simple tests like this to run in large, distributedenvironments on multiple browsers, on several different operating systems.


Selenium Overview

Is Selenium for you? See an overview of the different project components.

WebDriver

WebDriver drives a browser natively; learn more about it.

Selenium Manager (Beta)

Selenium Manager is a command-line tool implemented in Rust that provides automated driver and browser management for Selenium. 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.

Grid

Want to run tests in parallel across multiple machines? Then, Grid is for you.

IE Driver Server

The Internet Explorer Driver is a standalone server that implements the WebDriver specification.

Selenium IDE

The Selenium IDE is a browser extension that records and plays back a user’s actions.

Test Practices

Some guidelines and recommendations on testing from the Selenium project.

Legacy

Documentation related to the legacy components of Selenium. Meant to be kept purely for historical reasons and not as a incentive to use deprecated components.

About this documentation

Last modified November 17, 2023:Upgrade to Docsy 0 7 2 (#1529) (48f43616907)