Next-Gen App & Browser Testing Cloud
Trusted by 2 Mn+ QAs & Devs to accelerate their release cycles

Want to learn how to download Selenium, the free web automation tool? This guide offers everything you need to get started and run an automation test!

Jainish Patel
January 13, 2026
Automating regular testing processes enables organizations to develop high-quality software quickly. Selenium is an automation framework for web-based application testing which enterprises and small-scale organizations use to automate web browsers on various platforms and operating systems. The framework provides multiple use cases, such as cross browser testing, cross platform testing, regression testing, and functional testing.
Different programming languages, like Java, Python, Ruby, C#, etc., are supported to create test cases, giving flexibility for varied development contexts.
In this article on how to download Selenium, we will look at the different components of the Selenium framework. We will then look at the system requirements to download Selenium, followed by downloading and installing various components from the Selenium Suite to automate tests. Finally, we will look at how to configure Selenium with different IDEs like Eclipse, IntelliJ, and PyCharm. If you are preparing for an interview you can learn more through Selenium interview questions.
Selenium is one of the most well-known open-source test automation frameworks. It enables test automation of websites or web applications across various operating systems and browsers.
Additionally, it supports a variety of programming languages, including Python, C#, Java, JavaScript(Node.js), Ruby, and more, enabling testers to automate their website testing in whichever programming language they are most comfortable with.

Selenium framework consists of three different components classified as:
Selenium IDE (Integrated Development Environment) provides a record and playback tool that will generate scripts based on actions performed on a browser. Selenium IDE provides a user-friendly interface that allows testers and developers to easily export automated test scripts in programming languages like Java, Python, Ruby, C#, and many more. It proves to be an ideal tool for beginners as it requires almost no prior programming knowledge. However, it is unable to create more complex test cases. For that, Selenium WebDriver and Selenium Grid can be used.
Selenium WebDriver offers a reliable and object-oriented method of automating browsers. Writing automation scripts in programming languages like Java, C#, Python, Ruby, and JavaScript is possible with Selenium WebDriver. By interacting with the browser directly, it may programmatically control it. Numerous browsers, including Chrome, Firefox, Safari, Microsoft Edge, and others, are supported by WebDriver.
Selenium Grid is also classified as Local Grid that enables parallel test execution by allowing you to split test execution across several physical or virtual machines. You can simultaneously run tests on several browsers, operating systems, and devices, thanks to its integration with Selenium WebDriver. Several nodes and a hub make up Selenium Grid. Tests are distributed to the available nodes for execution from the hub, which serves as a central location for test registration.
This section on download Selenium provides a concise guide to begin the journey with Selenium. It covers two essential aspects of the preparation process – Understanding System Requirements and Selecting a Suitable Programming Language.
We will look at the requirements for running Selenium in terms of the operating system used, browser, and programming language support.
Operating System
Browser Support
Programming Language Support
Selecting the right programming language is one of the crucial parts before starting with the test processes as it determines the execution speed of tests, support from the community to resolve errors you might face while using a language, and many more. We will explore the advantages and disadvantages of the most popular programming languages in this section of download Selenium guide.
Java
Python
PHP
Ruby
JavaScript (Node.js)
When choosing a programming language for Selenium, consider the following factors:
Ultimately, the choice of programming language depends on your personal preferences, project requirements, and the resources available to you.
Now that we are aware of the different components of Selenium and its requirements. So let’s start with the setting up process for each component.
Let’s look at how to download Selenium IDE and running it on your system. We will see the process for various browsers like Chrome, Firefox, Microsoft Edge, and many more.
Nowadays, most of us are using one of the following browsers: Chrome, Firefox, Microsoft Edge, Opera, and Brave. In this section, we will see how to download Selenium IDE and install it from the web store of the different browsers.
Chrome Browser

Firefox Browser

Edge Browser

Browsers like Brave and Opera support the Chrome web store, so the installation process is the same as the process from the Chrome browser, which we discussed above. However, there has yet to be an official release for the Safari browser.
A particular browser driver, such as ChromeDriver, GeckoDriver, MicrosoftWebDriver, OperaDriver, etc., serves as a link between the Selenium WebDriver API and the automated browser and is frequently used in conjunction with it.
In this section we will cover how to Download Selenium WebDriver and set up the correct browser driver for the browser you want to use with Selenium and will see how to instantiate the WebDriver Object.
There are 2 ways to add and set up WebDrivers:
We are going to look at how to Explicitly download and Install WebDriver for different browsers and keep in mind that for the second part, where we use Selenium WebDriver Manager – we need not download and install drivers explicitly all requirements will be taken care of by the WebDriver Manager which will be discussed subsequently.
In this section of download Selenium guide, let’s set up the browser’s WebDriver by manually downloading it from their official release sources. It works for older (Selenium 3) and newer version (Selenium 4) of Selenium. In this section, we will see the process for various browsers like Chrome, Firefox, Edge, Opera, and Safari. In the later section, we will see how to use these downloaded drivers in the test environment to automate the browsers.
To control the Chrome browser, it provides the WebDriver named chromedriver. Let’s look at the steps to install the chromedriver.



It offers the WebDriver name Geckodriver to control the Firefox browser. Let’s look at the steps to install the Geckodriver.



To control the Microsoft Edge browser, it provides an Edge Driver named msedgedriver. Let’s look at the steps to install the msedgedriver.


To control the Opera browser, it provides the WebDriver name operadriver. Let’s look at the steps to install the operadriver.


It does not require a Safari driver; instead, most Selenium client libraries currently include safaridriver, the built-in driver for Safari. The web developer experience team at Apple looks after the safaridriver.
/usr/bin/safaridriver is the location of Apple’s executable safaridriver.
To enable the safaridriver, you need to run the following command in the terminal:
/usr/bin/safaridriver --enable
This is only required if you are explicitly downloading and installing the browser drivers and trying to set it up manually.
There are 2 ways to use the WebDriver of a browser:
Windows Operating System





macOS Operating System
Linux Operating SystemIf you have already followed the steps to download ChromeDriver, skip steps 1, 2, and 3.
cd /tmp/
wget https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/bin/chromedriver
If you want to explore how to set the environment variable for the driver using a terminal, follow the documentation by Selenium.
In the next section, we will see how to initialize the WebDriver using both ways.
Till now we have covered how to download the WebDriver and set it up. Now we are going to see how to use it in different languages like Java, Python, JavaScript, and many more.
There are 2 ways:
Before moving further let’s learn a bit about Selenium WebDriver Manager.
Selenium WebDriver Manager was introduced in the year 2022. It is a CLI (Command-Line Interface) program designed for cross-platform execution in the Rust programming language. The Selenium bindings transparently invoke Selenium Manager when a browser driver is not present in the PATH or when a third-party driver manager is not being used. For using any browser’s Driver, you just have to initialize it.
Let’s now look at how to create the WebDriver Object in different programming languages.
Browser-specific driver path or using the Environment Variable path:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class WebDriverManagerExample {
public static void main(String[] args) {
// If you want to use chromedriver for a specific location
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
// If you are using selenium 4 bindings then the below code will work fine even if the Environment Variable path is not setup.
// If you directly run the below code it will try to find the driver in Environment Variable.
WebDriver driver = new ChromeDriver();
driver.get("https://ecommerce-playground.lambdatest.io/");
driver.quit();
}
}
Using Selenium WebDriver Manager for a Maven project:
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.4.0</version>
</dependency>
</dependencies>
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class WebDriverManagerExample {
public static void main(String[] args) {
// Setup WebDriverManager
WebDriverManager.chromedriver().setup();
// Create a new WebDriver instance
WebDriver driver = new ChromeDriver();
driver.get("https://ecommerce-playground.lambdatest.io/");
driver.quit();
}
}
Browser-specific driver path or using the Environment Variable path:
from selenium import webdriver
# Setup webdriver_manager
# If you want to use chromedriver for a specific location
driver = webdriver.Chrome(executable_path="/path/to/chromedriver")
# If you directly run the below code it will try to find the driver in Environment Variable.
driver = webdriver.Chrome()
driver.get("https://ecommerce-playground.lambdatest.io/")
driver.close()
Using Selenium WebDriver Manager:
pip install webdriver-manager
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# Setup webdriver_manager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://ecommerce-playground.lambdatest.io/")
driver.close()
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
# Setup webdriver_manager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
driver.get("https://ecommerce-playground.lambdatest.io/")
driver.close()
Browser-specific driver path or using the Environment Variable path:
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace SeleniumWithChromeriver
{
class Program
{
static void Main(string[] args)
{
// If you want to use chromedriver for a specific location
WebDriver driver = new ChromeDriver("/path/to/chromedriver");
// If you directly run the below code it will try to find the driver in Environment Variable.
WebDriver driver = new ChromeDriver();
driver.NavigateTo("https://ecommerce-playground.lambdatest.io/");
driver.Close();
}
}
}
Using Selenium WebDriver Manager:
dotnet add package WebDriverManager.Net
using System;
using System.Collections.Generic;
using System.Text;
using Selenium.WebDriver;
using WebDriverManager;
namespace WebDriverManagerExample
{
class Program
{
static void Main(string[] args)
{
// Initialize WebDriverManager
WebDriverManager.ChromeDriver().Setup();
IWebDriver driver = new ChromeDriver();
driver.NavigateTo("https://ecommerce-playground.lambdatest.io/");
driver.Close();
}
}
}
Browser-specific driver path or using the Environment Variable path:
<?php
require_once('vendor/autoload.php');
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;
// Provide the absolute path to the chromedriver executable
$driverPath = '/path/to/chromedriver';
// Set the desired capabilities
$capabilities = DesiredCapabilities::chrome();
// If you want to use chromedriver for a specific location
$driver = RemoteWebDriver::create($driverPath, $capabilities);
// If you directly run the below code it will try to find the driver in Environment Variable.
$driver = RemoteWebDriver::create($capabilities);
$driver->get('https://ecommerce-playground.lambdatest.io/');
$driver->quit();
?>
Using Selenium WebDriver Manager:
composer require webdrivermanager/webdrivermanager
<?php
require_once 'vendor/autoload.php';
use WebDriverManagerWebDriverManager;
// Initialize WebDriverManager
WebDriverManager::setBrowser('chrome');
$driver = WebDriverManager::getDriver();
$driver->get('https://ecommerce-playground.lambdatest.io/');
$driver->quit();
?>
Browser-specific driver path or using the Environment Variable path:
require 'selenium-webdriver'
# If you want to use chromedriver for a specific location
driver_path = '/path/to/chromedriver'
# Set the path for the chromedriver executable
Selenium::WebDriver::Chrome::Service.driver_path = driver_path
# If you directly run the below code it will try to find the driver in Environment Variable.
driver = Selenium::WebDriver.for :chrome
driver.get 'https://ecommerce-playground.lambdatest.io/'
driver.quit
Using Selenium WebDriver Manager:
gem install webdriver_manager
require 'webdriver_manager'
WebDriverManager.chromedriver.install
# Setup webdriver_manager
driver = Selenium::WebDriver.for :chrome
driver.get 'https://ecommerce-playground.lambdatest.io/'
driver.quit
const {By,Key,Builder} = require("selenium-webdriver");
require("chromedriver");
// If you want to use chromedriver for a specific location
const chromedriverPath = '/path/to/chromedriver';
async function example(){
//If you directly run the below code it will try to find the driver in Environment Variable.
let driver = await new Builder().forBrowser("chrome").build();
await driver.get("https://ecommerce-playground.lambdatest.io/");
await driver.quit();
}
example()
Using Selenium WebDriver Manager:
npm install webdriver-manager
const WebDriverManager = require('webdriver-manager');
// Initialize WebDriverManager
const chromeDriver = WebDriverManager.chromedriver();
chromeDriver.setup();
const driver = new chrome.ChromeDriver();
driver.get('https://ecommerce-playground.lambdatest.io/');
driver.quit();
There are 2 ways to do it,
Before moving forward with the installation of Eclipse IDE, it is mandatory to install Java on your system. Now let’s see how we will set up the IDE for automation tests.
Let’s look at the standard way in Java:












You can Verify the installation by running the following code:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.JavascriptExecutor;
public class Test {
public static void main(String[] args) {
WebDriver driver=new ChromeDriver();
// Launch Website
driver.navigate().to("https://ecommerce-playground.lambdatest.io/");
//Maximize the browser
driver.manage().window().maximize();
//Scroll down the webpage to the end
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("scrollBy(0, document.body.scrollHeight)");
driver.quit();
}
}
Now run the file By right-clicking on Test.java > Run As > Java Application.
You can start creating testing scripts in Java at this point. However, If you want to add a dependency manager to your project you can continue further.
Using a build tool in Java(using Maven here):



Now run the Java file normally as we ran earlier.
You can also add testing frameworks like JUnit and TestNG to your project to utilize the power of Java with its robust frameworks.
For IntelliJ IDE, there is a requirement to install Java on the system.
Let’s look at the standard way in Java:







import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.JavascriptExecutor;
public class Main {
public static void main(String[] args) {
// Instantiate a ChromeDriver class.
WebDriver driver=new ChromeDriver();
// Launch Website
driver.navigate().to("https://www.lambdatest.com/");
//Maximize the browser
driver.manage().window().maximize();
//Scroll down the webpage to the end
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("scrollBy(0, document.body.scrollHeight)");
driver.quit();
}
}
Using a build tool in Java(using Maven here):




Now run the Java file normally as we ran earlier.
You can also add testing frameworks like JUnit and TestNG to your project to utilize the power of Java with its robust frameworks.
Python programming is done using the integrated development environment PyCharm. In addition to supporting Django web development, it offers code analysis, a graphical debugger, an integrated unit tester, integration with version control systems, and more. Let’s configure this IDE for Selenium.




from selenium import webdriver
# Create a new instance of the ChromeDriver
driver = webdriver.Chrome()
# Open a website
driver.get("https://www.lambdatest.com/")
print(driver.title)
# Close the browser
driver.close()
You can also use testing frameworks supported by Python like Pytest and Unittest. Check out our blog on Python Selenium with Chrome if you are interested in using Python to create and run automation scripts.
To run the test scripts with different browsers and configurations Selenium Grid is used. The Selenium Grid facilitates the distributed test execution. Selenium 4 continues to use the grid design concepts and operates on a hub-node architecture. In contrast to earlier Selenium releases (versions 3.x), the Selenium 4 Server jar includes all requirements necessary to execute a Grid. According to Selenium’s official documentation, Selenium Grid 4 has been created entirely from scratch and has no codebase in common with its predecessors. We will see how to install and run Selenium Grid correctly in this section.
Prerequisites
Note: No need to install any browser driver If you are using Selenium 4 and later versions.
Installation
java -jar selenium-server-<version>.jar standalone
java -jar selenium-server-<version>.jar standalone --selenium-manager true

You may check out our blog on Selenium Grid 4 for testing projects in a detailed manner.
While running tests on local grids Developers and Testers might face the following issues:
To overcome the above issues Cloud Grid is used. Before moving further with Cloud Grid let’s look at some key differences between Local and Cloud Grid.
Note: Automate Selenium and Appium tests with Capybara framework on TestMu AI cloud platform
| Parameters | Local Grid | Cloud Grid |
|---|---|---|
| Definition | Selenium Grid setup runs on your local machine. | Selenium Grid configuration running on cloud computing resources controlled by a service provider. |
| Infrastructure | Demands locally installed virtual machines or specialized hardware. | Utilizes cloud-based infrastructure provided by the cloud provider. |
| Scalability | It is dependent on the available resources in your local setup. | Highly scalable, allowing for dynamic allocation of resources as per needs. |
| Maintenance | Requires maintenance over hardware, infrastructure, and Grid. | The infrastructure is managed and kept up to date by the cloud provider, including scalability. |
| Cost | Initial hardware and infrastructure setup costs and ongoing maintenance expenses. | The Pay-per-use pricing model is based on usage, reducing upfront costs. |
| Flexibility | Gives you additional options for customization and control because you have access to the setup directly. | Offers easier scalability choices but less control over the underlying infrastructure. |
| Accessibility | Restricted access through VPN setups or beyond the local network. | Global internet accessibility and remote execution and collaboration are both possible. |
| Setup Time | Infrastructure setup and Grid configuration need time and effort. | Setup is quick and simple and does not require infrastructure provisioning. |
Let’s learn a bit more about Cloud Grid and then we will see an example for Cloud Grid and run a test on it.
Digital experience testing platforms like TestMu AI offer a cloud grid that gives developers and software testers seamless cross-browser and cross-platform testing capabilities. It provides a scalable and dependable platform for testing web applications with its state-of-the-art infrastructure, assuring faultless user experiences across various devices and browsers.
Users can instantly access a wide range of real browsers and operating systems by utilizing TestMu AI’s Cloud Grid, doing away with the need to set up and maintain local Infrastructure. Parallel testing is possible with this cloud-based method, greatly cutting testing time and boosting productivity.
With the help of TestMu AI’s user-friendly interface and advanced debugging and teamwork features, teams may work together to find and fix problems. Its strong automation architecture also supports well-known testing frameworks, allowing developers to incorporate their current testing procedures smoothly. TestMu AI is the go-to solution for shortening the Software Development Life Cycle (SDLC) while delivering exceptional user experiences, whether it’s compatibility testing, responsive design testing, or automated testing.
Now that we have enough knowledge about Cloud Grid, it’s time to run a test on TestMu AI. We are using Python language to create a test script.
For this test, we are using a sample form. The test will be run on the MacOS Ventura operating system with Firefox version 114.0.
Before Running a Python test on TestMu AI, follow a few simple steps:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.common.by import By
username = ""
access_key = ""
lt_options = {}
lt_options["video"] = True
lt_options["platformName"] = "MacOS Ventura"
lt_options["browserVersion"] = "114.0"
lt_options["resolution"] = "2560x1440"
lt_options["build"] = "Input Field Test"
lt_options["project"] = "Field Test"
lt_options["name"] = "Test1"
lt_options["w3c"] = True
def input_field_test():
# To run the test on the platform
remote_url = "http://{}:{}@hub.lambdatest.com/wd/hub".format(username, access_key)
# adding the capability to the chrome
options = FirefoxOptions()
options.set_capability('LT:Options', lt_options)
# initializing remote server
driver = webdriver.Remote(command_executor=remote_url, options=options)
driver.get("https://www.lambdatest.com/selenium-playground/simple-form-demo")
message_field = driver.find_element(By.ID,"user-message")
message_field.send_keys("Checking the field")
get_value_btn = driver.find_element(By.ID,"showInput")
get_value_btn.click()
sum1 = driver.find_element(By.ID,"sum1")
sum1.send_keys("10")
sum2 = driver.find_element(By.ID,"sum2")
sum2.send_keys("20")
answer_btn = driver.find_element(By.XPATH,'//*[@id="gettotal"]/button')
answer_btn.click()
driver.quit()
if __name__=="__main__":
input_field_test()
Now run the file using the following command
python <filename>.py
Understanding the code step by step:
Add your credentials here as it will help the lambdaTest to run tests on your account:

Get your desired capabilities that can be generated from the capabilities generator.

Visit the TestMu AI Dashboard where the test is visible. It will give output like the below image:

Explore various available test details to get a better idea of the platform.

In this blog, we covered how to download Selenium and set it up for an automation testing environment. We looked at the components namely Selenium IDE, Selenium WebDriver, and Selenium Grid. In addition to discussing the Selenium system requirements, we also discussed how to pick an appropriate programming language which enables you to make deft decisions.
By thoroughly explaining how to download Selenium IDE, Selenium WebDriver for various browsers, we moved beyond installation. We discussed how to set up various Integrated Development Environments (IDEs)- Eclipse, IntelliJ, and PyCharm.
After that, to ensure a seamless testing process, we verified the Selenium installation for each IDE. We explore How to download Selenium Grid and the differences between local and cloud grids, illuminating the various testing environments and their uses.
Overall, this blog covers all the important aspects of integrating and using Selenium in your project. So that the resultant website is robust and chances of error will be reduced by testing it thoroughly.
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance