Tutorial7 min read

What Is Selenium?

Short answer

Selenium is a free, open-source project for automating web browsers: its WebDriver library lets code in Java, Python, C#, Ruby or JavaScript open pages, click, type and read content in Chrome, Firefox, Edge and Safari. It is released under the Apache 2.0 license, so the software costs nothing; what you pay for is the machines or cloud grid that run the browsers and the time to maintain the scripts. ProxyField's residential proxies work with Selenium through the browser's proxy settings, from $1.95/GB; start with the Easy Trial: 1 GB for $2.95.

residential IPs
412M+
from, traffic never expires
$1.95/GB
Easy Trial
1 GB for $2.95
On this page 8 sections
  1. Is Selenium free?
  2. What is Selenium used for?
  3. The three parts of Selenium: WebDriver, IDE and Grid
  4. What is Python Selenium?
  5. Selenium for monitoring
  6. Selenium vs Playwright and Puppeteer
  7. Using Selenium with proxies
  8. What Is Selenium? FAQ

Is Selenium free?

Yes. Selenium is open source under the Apache License 2.0, which allows free use, including commercial use, with no license fee and no seat count (Selenium on GitHub). The project sits with the Software Freedom Conservancy, a non-profit, and is built by volunteers and contributors from many companies (selenium.dev). There is no paid edition of Selenium itself.

Selenium does have running costs, and they are where "Selenium pricing" questions come from:

Cost itemWhat drives itHow to keep it down
Machines for the browsersEach browser instance needs CPU and hundreds of MB of RAM; parallel tests or scrapers multiply itRun headless, cap parallel sessions, reuse sessions
A Selenium GridServers (or containers) for the hub and nodes, if you run many browsers at onceStart with one standalone Grid in Docker; scale nodes only when queues build up
A hosted cloud gridVendors charge for parallel sessions and minutes on their browsers and devicesUse it for browser and OS combinations you cannot host; run the bulk locally
MaintenanceEngineers fixing selectors, waits and flaky tests when sites changeStable selectors, explicit waits, page objects
Proxies (scraping)Residential traffic per GB for pages loaded through the browserBlock images and fonts; load only the pages you need

So the answer to "is Selenium free" is: the software is, and the infrastructure is what you budget for.

What is Selenium used for?

Selenium automates what a person does in a browser, so it is used wherever that needs to be repeated:

  • Automated testing. Its main use: end-to-end and cross-browser tests of web apps, run in CI on every change.
  • Web scraping. Loading pages that build their content with JavaScript and reading the rendered data; see web scraping with Selenium.
  • Monitoring. Scripted checks that log in, search or check out on a schedule and alert when a step fails or slows down.
  • Repetitive web tasks. Filling the same forms, downloading reports from a web portal, taking screenshots for records.

The three parts of Selenium: WebDriver, IDE and Grid

PartWhat it isWho uses it
Selenium WebDriverLanguage bindings that drive a browser through its driver, using the W3C WebDriver standardDevelopers writing tests or scrapers in code
Selenium IDEA browser extension that records your clicks and plays them backTesters who want quick scripts without code
Selenium GridA server that runs WebDriver sessions on many machines and browsers in parallelTeams running many tests or browsers at once

How Selenium WebDriver works

Your script calls the Selenium library, which sends each command (open a URL, find an element, click) as an HTTP request to a browser driver: chromedriver for Chrome, geckodriver for Firefox, msedgedriver for Edge, safaridriver for Safari. The driver performs it in the browser and returns the result. This protocol is a W3C standard, WebDriver, which became a W3C Recommendation in 2018 (W3C: WebDriver). Since Selenium 4.6, Selenium Manager finds or downloads the right driver for your browser automatically, so you no longer download chromedriver by hand (selenium.dev: Selenium Manager). Newer versions also speak WebDriver BiDi, a two-way protocol that adds events such as console logs and network activity.

How Selenium Grid works

Selenium Grid 4 receives new-session requests on one address (port 4444 by default) and routes each to a node that has the requested browser free. Inside, a router takes the requests, a session queue holds them, a distributor picks a node, and a session map remembers which node runs which session; nodes run the browsers (selenium.dev: Grid components). You can run it as one standalone process, as a hub with nodes, or fully distributed, and official Docker images exist for each part. Your script connects with a remote driver:

Python
from selenium import webdriver
driver = webdriver.Remote(command_executor="http://localhost:4444", options=webdriver.ChromeOptions())

What is Python Selenium?

Python Selenium is the Python binding of WebDriver, the selenium package on PyPI. Install it with pip install selenium, and a few lines open Chrome, wait for content and read it:

Python
# pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")
driver = webdriver.Chrome(options=options)          # Selenium Manager finds chromedriver
driver.get("https://quotes.toscrape.com/js/")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".quote")))
for el in driver.find_elements(By.CSS_SELECTOR, ".quote .text"):
    print(el.text)
driver.quit()

The same API exists in Java, C#, Ruby and JavaScript, with the same concepts: a driver, find_element with a locator strategy (CSS, XPath, ID, name), explicit waits, and quit() at the end.

Selenium for monitoring

Selenium monitoring means running a scripted user journey (sign in, search, add to cart, check out) on a schedule against a live site and alerting when a step fails or takes too long. It catches problems a simple "is the site up" ping misses, such as a broken checkout button. Teams run the scripts from cron or CI against their own sites, or load Selenium IDE recordings and WebDriver scripts into a synthetic monitoring service. When you monitor from several countries, each run needs an IP in that country; a proxy with country and city targeting gives the browser that location.

Selenium vs Playwright and Puppeteer

All three drive real browsers; they differ in protocol and scope. Selenium uses the W3C WebDriver standard and supports the most languages and browsers, including Safari through Apple's driver. Playwright (Microsoft) and Puppeteer (Chrome team) talk to browsers over their own protocols, wait for elements automatically and intercept network traffic out of the box. For a new scraping project in Python or Node.js, many developers start with Playwright; teams with an existing Selenium test suite, a Grid or a language Playwright does not cover keep Selenium. More in what Playwright is and what Puppeteer is.

Using Selenium with proxies

Selenium sends traffic through the browser, so the proxy is set on the browser: Chrome's --proxy-server argument, Firefox preferences, or Selenium's proxy capability. Chrome does not accept a username and password in the proxy flag, so authenticated proxies need an extension, a local forwarder or an IP allowlist. ProxyField's gateway is gate.proxyfield.io:7000 with username:password (with the IP allowlist, the port you set up in the dashboard), HTTP, HTTPS and SOCKS5, and a new IP per request or a sticky session from 30 s to 36 h. The Selenium proxy setup guide has working code for each browser. Residential traffic costs $2.95/GB for 1 GB down to $1.95/GB from 1,000 GB, with no subscription, and the traffic never expires (residential and mobile proxy pricing).

What Is Selenium? FAQ

Is Selenium free?

ProxyField sells the proxy traffic a Selenium scraper may need, from $1.95/GB, but Selenium itself is free: it is open source under the Apache 2.0 license, with no paid edition, and commercial use is allowed. You pay only for the machines that run the browsers and, for scraping, the proxy traffic.

How much does Selenium cost?

The software costs nothing. The real costs are the servers or containers that run the browsers, a hosted cloud grid if you rent browsers and devices by parallel session, and the engineering time to keep scripts working as sites change.

Do we need a license for Selenium?

No paid license is needed. The Apache 2.0 license lets you use, modify and ship Selenium in commercial work; if you redistribute Selenium's own code, keep its license and notice files.

What does it cost to run a Selenium farm at scale?

The software stays free; the cost grows with the machines, because every session is a full browser that needs CPU and hundreds of MB of memory, and large suites run many in parallel. Flaky tests and broken selectors add engineer time on top; headless runs, explicit waits and fewer parallel sessions keep the bill down.

What is Selenium used for?

Mostly automated testing of web apps across browsers. It is also used for scraping pages that need JavaScript, for scheduled monitoring of user journeys such as login and checkout, and for repetitive tasks in web portals.

What is Selenium WebDriver?

The part of Selenium that controls a browser from code. Your script sends commands through a language binding to the browser's driver (chromedriver, geckodriver, msedgedriver or safaridriver) using the W3C WebDriver standard, and the driver carries them out.

What is Python Selenium?

The Python binding of Selenium WebDriver, installed with pip install selenium. It lets a Python script open Chrome, Firefox, Edge or Safari, find elements by CSS, XPath or ID, click and type, and read the rendered page.

How does Selenium Grid work?

Your script connects to one Grid address, usually port 4444, with a remote driver. A router takes the request, a queue holds it, a distributor assigns it to a node with a free matching browser, and a session map routes later commands to that node.

Can Selenium be used for monitoring?

Yes. Teams run Selenium scripts on a schedule to sign in, search or check out on their own site and alert when a step fails or slows down. Running the checks from several countries needs an IP in each, which a proxy with country targeting provides.

What is C# Selenium used for?

For the same jobs as in other languages, in .NET projects: UI tests run with NUnit, xUnit or MSTest, and browser automation or scraping in C#. It is installed as the Selenium.WebDriver NuGet package.

Show 2 more questionsShow fewer questions

What is SeleniumBase?

An open-source Python framework built on top of Selenium. It adds a pytest-based test runner, shorter commands, built-in waits and reporting, while still using WebDriver underneath.

What are the disadvantages of Selenium?

Each command is a round trip to the browser driver, so it is slower than libraries that talk to the browser directly; it has no built-in auto-waiting, so missing waits cause flaky scripts; and it needs a full browser per session. Network interception, standard in Playwright and Puppeteer, needs WebDriver BiDi or extra tools.

Easy Trial: 1 GB for $2.95.

Try for the price of 1 GB, no subscription, traffic never expires.