Automate any browser, from any language.
Selenium is a browser automation tool that gives you full control over Chrome, Firefox, Edge and Safari. Write your scripts in Java, Python, C#, Ruby, JavaScript or Kotlin using the official W3C WebDriver standard.
Works out of the box: Selenium downloads what it needs to talk to your browser, so there is nothing to install by hand.
Install Selenium and run your first script
Add the Selenium package for your language, then run the script below. It opens Chrome, loads a page and closes the browser again.
Add org.seleniumhq.selenium:selenium-java to your build, then run:
package dev.selenium.hello;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class HelloSelenium {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://selenium.dev");
driver.quit();
}
}
Install the package:
pip install seleniumThen run:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://selenium.dev")
driver.quit()
Install the package:
dotnet add package Selenium.WebDriverThen run:
using OpenQA.Selenium.Chrome;
namespace SeleniumDocs.Hello;
public static class HelloSelenium
{
public static void Main()
{
var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://selenium.dev");
driver.Quit();
}
}Install the gem:
gem install selenium-webdriverThen run:
# frozen_string_literal: true
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
driver.get 'https://selenium.dev'
driver.quit
Install the package:
npm install selenium-webdriverThen run:
const {Builder, Browser} = require('selenium-webdriver');
(async function helloSelenium() {
let driver = await new Builder().forBrowser(Browser.CHROME).build();
await driver.get('https://selenium.dev');
await driver.quit();
})();Kotlin uses the Java bindings. Add org.seleniumhq.selenium:selenium-java to your build, then run:
package dev.selenium.hello
import org.openqa.selenium.chrome.ChromeDriver
fun main() {
val driver = ChromeDriver()
driver.get("https://selenium.dev")
driver.quit()
}
Need more detail? Follow the Getting Started guide.
Pick your tool
Selenium WebDriver
Use this when you want to drive a browser from code in your own language. WebDriver is a collection of language-specific bindings that control a real browser the way a user would, and it is the foundation for everything else Selenium does.
Selenium Grid
Use this when you need to run your WebDriver tests on several machines, browsers and operating systems at once. Grid distributes sessions from a central point so you can run against a vast combination of environments in parallel.
Used by projects and teams including
Development Partners
Selenium Level Sponsors
News
Today we’re happy to announce that Selenium 4.51 has been released!
Read MoreToday we’re happy to announce that Selenium 4.50 has been released!
Read MoreYour Agent Learned Selenium From My Old Blog Posts
Tuesday, September 29, 2026
By David Burns @automatedtester
A lot of Selenium code is now written by coding agents, and it is wrong in the same handful of ways every time. We have added a documentation page on how to fix that.
Read MoreSupport the Selenium Project
Learn more or view the full list of sponsors.



