Learn Selenium - History, Background & Why Choose Selenium
Episode 1 of 23

Learn Selenium - History, Background & Why Choose Selenium

This episode explores the history and background of Selenium's birth, its evolution from Selenium RC to Selenium 4 with the W3C standard, its advantages over Cypress, Playwright, and Puppeteer, as well as real use cases that make it the top choice for web test automation.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Introduction

Episode 0 ensured your environment is ready. Now it's time to understand why Selenium exists. Episode 1 answers three big questions: where Selenium came from, what advantages it brings, and why you — as an engineer building web test automation — choose it over other modern tools.

Many people start using Selenium because of tutorials, yet understanding its background is far more valuable. By knowing Selenium's history and its position in the ecosystem, you'll find it easier to decide when to use Selenium, when to use alternatives, and how to position it within your team's testing architecture.

By the end of this episode, you'll also see a timeline table of Selenium versions and a guide on when you should not use Selenium. Both are considerations that beginner practitioners often overlook.

The History of Selenium

Born as Selenium RC in 2004

Selenium was created by Jason Huggins at ThoughtWorks in 2004. At the time, he built a tool called JavaScriptTestRunner to test web applications automatically, which was later renamed Selenium Remote Control (RC). The uniqueness of Selenium RC: it ran JavaScript inside the browser page to simulate user actions.

This JavaScript-based approach had limitations: browsers restricted scripts inside a sandbox, so many real browser actions could not be simulated. This problem gave birth to the next generation.

Merging with WebDriver into Selenium 2 and 3

In 2006, Simon Stewart developed WebDriver at ThoughtWorks with a different approach: instead of injecting JavaScript, WebDriver talked directly to the browser through a more native mechanism. In 2008, the Selenium and WebDriver projects merged, giving birth to Selenium 2.0 in 2011.

Selenium 3 (2016) marked the retirement of Selenium RC and a full focus on WebDriver, while also starting the W3C standardization process. This standard made the WebDriver protocol a public specification adopted by all major browsers.

Selenium 4: W3C Standard and Selenium Manager

Selenium 4 (2021) brought a huge leap: full implementation of the W3C WebDriver standard without additional modules, relative locators, a completely overhauled Grid with a session map, and since version 4.6, Selenium Manager which downloads drivers automatically. As of 2026, Selenium 4.x is the stable release with the largest community ecosystem in the world of browser automation.

Selenium Version Timeline

For easy recall, here's a concise timeline:

VersionYearKey highlights
Selenium RC2004JavaScript injection based, by Jason Huggins
Selenium 22011Merger with WebDriver from Simon Stewart
Selenium 32016Full WebDriver, start of W3C standardization
Selenium 42021Full W3C, relative locators, new Grid, Selenium Manager
Check installed Selenium version
pip show selenium | grep -i version

The command pip show selenium | grep -i version shows the installed version. Make sure it's version 4.x before following this series, because all code examples use the Selenium 4 API.

Selenium's Advantages

Cross-Browser and Multi-Language

Selenium's most distinctive advantage is the combination of two dimensions no other tool has: support for many browsers (Chrome, Firefox, Edge, Safari) and many programming languages (Python, Java, C#, JavaScript, Ruby). A Java backend team and a JavaScript frontend team can both use Selenium in their own language.

PythonSelenium from Python
from selenium import webdriver
 
driver = webdriver.Chrome()
driver.get("https://example.com")
print(driver.current_url)
driver.quit()

The block above is an example of driver.get(...) from the Python binding. Java bindings use WebDriverManager and ChromeDriver, while JavaScript bindings use the selenium-webdriver npm — the APIs still follow the same W3C standard.

A Mature Ecosystem

With more than 20 years of history, Selenium has extensive documentation, a large community, integrations with almost every testing framework (pytest, JUnit, TestNG, Mocha), and the backing of the W3C standard itself. This means the skills you learn in this series apply anywhere, including when you change companies or languages.

Comparison with Cypress, Playwright, and Puppeteer

Before choosing, it's important to see where the modern competitors stand:

ToolLanguageMain strengthsLimitations
SeleniumManyW3C standard, all browsers, GridMore manual setup, limited auto-wait
CypressJavaScriptFast, runs in the same browserLimited to the JS ecosystem
PlaywrightJavaScript, Python, JavaAuto-wait, CDP, codegenYounger, fewer third-party integrations
PuppeteerJavaScriptFull Chrome control via CDPChrome-focused, not a test runner

A healthy mindset: Selenium for flexibility and standards, Playwright/Cypress for productivity within the JS ecosystem, and Puppeteer for low-level browser scripting. We'll discuss when to combine them in episode 22.

Tip

Don't choose a tool based on popularity alone. Write down your team's requirements — languages, browsers, budget, and application type — then match them against each tool's capabilities.

Selenium Use Cases

Regression, E2E, and Browser Automation

Selenium is used for three main categories of work:

  • Regression testing: making sure old features don't break when code changes, run routinely in CI/CD.
  • End-to-end testing: validating complete user flows — login, shopping, checkout — across many pages and systems.
  • Browser automation: automating tasks like mass form filling, report downloads, and screenshot capture.
Basic E2E test flow
open page -> fill form -> submit -> verify result -> teardown

One thing to remember: Selenium is not for every kind of testing. For pure logic validation, unit tests remain the best choice. For load testing, tools like k6 or JMeter are more appropriate. Selenium shines when what's being tested is real user behavior in a real browser.

When Not to Use Selenium

There are situations where Selenium isn't the ideal choice. If your application is a pure JavaScript SPA and the team is fully in the Node.js ecosystem, Playwright or Cypress can offer more convenient auto-wait. If you only need to automate Chrome for scraping, Puppeteer is lighter. Selenium shines when your needs are cross-browser, cross-language, and require a stable standard.

Conclusion

Episode 1 gave you context: Selenium was born in 2004 as Selenium RC, merged with WebDriver to become Selenium 2, standardized itself through W3C in Selenium 3 and 4, and is now the most mature browser automation tool with cross-browser and multi-language advantages.

Key takeaways:

  • Selenium started as the JavaScript-based Selenium RC at ThoughtWorks in 2004.
  • The merger with WebDriver produced Selenium 2, 3, and 4 with the W3C standard.
  • Its distinctive advantages: many browsers, many languages, and a mature ecosystem.
  • Cypress and Playwright offer productivity; Selenium offers flexibility and standards.
  • Use Selenium for regression, E2E, and browser automation, not for unit or load tests.
  • Also recognize when to choose other tools so your technical decisions are based on needs.

In episode 2 next, we'll cover core concepts and Selenium architecture — the WebDriver, browser driver, and Selenium Grid components, how Selenium controls the browser via the W3C protocol, and the setup, exercise, assert, teardown test lifecycle. This is the architectural foundation that will accompany the entire series.