Selenium 1 used Selenium RC, which ran automation JavaScript inside the browser. Selenium 2 brought in WebDriver, which controlled browsers through browser-specific implementations. The two generations are now legacy; current Selenium work uses later releases, with Selenium 4 listed by the project as the current generation.
What is the difference between Selenium 1 and Selenium 2?
| Area | Selenium 1 / Selenium RC | Selenium 2 / WebDriver |
|---|---|---|
| How it interacted with a browser | RC ran automation as JavaScript within the browser. | WebDriver controlled the browser through browser-specific implementations. |
| Architectural consequence | In-browser JavaScript faced browser restrictions, including the same-origin problem. | WebDriver could use facilities offered by the native platform instead of relying on browser JavaScript for the heavy lifting. |
| Project relationship | Provided the original Selenium API and code lineage. | Combined Selenium and WebDriver. Early Selenium 2 also offered the original Selenium API in Java and .NET. |
| Status today | Legacy generation. | Legacy generation; the project has since moved to Selenium 4. |
The Selenium project’s legacy FAQ summarizes the architectural change: “Rather than running as a Javascript application within the browser (with the limitations this brings, such as the ‘same origin’ problem), WebDriver controls the browser itself.” Selenium 2 FAQ
Is Selenium 2 the same as WebDriver?
Not exactly. WebDriver was the browser-control approach and API incorporated into Selenium 2. Selenium 2 was the combined project generation, not simply a new name for WebDriver or an unrelated replacement for Selenium. The project’s legacy overview describes Selenium 2 as a rewrite of Selenium 1 implemented with WebDriver code, while its 2010 account gives the fuller merger context.
That 2010 project post said the early 2.x series included Selenium 1.x code and was backward compatible at that time. Treat that as a historical statement about the early release, not a guarantee that every later Selenium binding or current version accepts Selenium 1 code unchanged. The Current Status of Selenium 1 and Selenium 2 · Selenium 2 legacy documentation
#1 Best Overall
What happened to Selenium 1 and Selenium 2?
- Selenium 1: In a July 2010 post, the project said Selenium 1.0.4 was planned as the final 1.x release. The post also explained that there had been no separate 1.x development after the codebases merged; releases labelled 1.x were being packaged from merged development. This records the project’s plan at the time, rather than independently verifying a final release event.
- Selenium 2: It marked the merger of Selenium and WebDriver and established the WebDriver approach that replaced RC’s in-browser JavaScript model.
- Selenium 3 and 4: Selenium 3 supported both W3C WebDriver and the legacy JSON Wire Protocol. The project’s Selenium 4 upgrade guide explains changes for moving from Selenium 3 to 4.
- Current listing: The Selenium downloads page lists version 4.49.0, dated September 9, 2026, for Java, Python, JavaScript, Ruby, .NET and Selenium Server/Grid. Releases change, so consult the page for the current version and the binding you use. Selenium downloads
Is Selenium 2 still supported?
Selenium 2 is a historical generation, not the version to choose for new work. The project’s current documentation and download listings point to later releases; check the official downloads page and documentation for the language binding you need. The available source material does not establish support status for every old package or third-party fork, so verify the particular dependency if you are maintaining an archived system.
How do I migrate from Selenium RC to WebDriver?
There is no single safe code edit for every RC project. First identify the programming-language binding, the RC APIs your tests call, and the browser and server setup; then migrate according to the current project instructions for that language. Selenium’s legacy documentation points to Selenium 1-to-2 and RC-to-WebDriver migration information, while the current upgrade guide covers Selenium 3 to Selenium 4 rather than serving as a universal RC migration recipe.
Rank #2
- Inventory the project. Record the language and binding versions, RC client calls, browser targets, and any standalone Selenium Server use.
- Separate test intent from RC mechanics. Identify test steps that express user behavior separately from code that depends on RC’s JavaScript-based execution or server setup.
- Choose the supported destination. Use the current Selenium documentation and downloads for your binding rather than stopping at Selenium 2. Follow the relevant language-specific upgrade guidance.
- Port and validate incrementally. Update a small group of tests, run them against the intended browsers, and address API and browser-configuration differences before migrating the rest.
For current upgrades, see Upgrade to Selenium 4. Selenium’s history and legacy Selenium 2 documentation provide context for the older generations.
What should you use for browser automation today?
For interactive browser testing, start with the current Selenium release for your language and follow its WebDriver documentation. Selenium 1 and Selenium 2 explain how the project evolved, but neither is a sound default for a new automation project. The official sources reviewed do not provide a Selenium 1-versus-2 performance benchmark, so there is no basis here for claiming a quantified speed or reliability advantage.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesRank #3
Or skip the browser setup
If the task is capturing a page rather than interacting with it as a test, ScreenshotNeo is a website screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP or PDF. Cookie banners, newsletter popups and chat widgets are removed before capture; bot checks, blank pages and failed loads are not billed. Its MCP server lets AI agents take screenshots, and the free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000.
cURL example, using Stripe as the target URL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Sign up for 1,000 free screenshots a month, with no card required.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Frequently Asked Questions
Was Selenium 1.0.4 definitely the final Selenium 1 release?
The project said in July 2010 that 1.0.4 was planned as the final 1.x release. That post documents the plan; it is not independent confirmation of the final release event.
Does the Selenium 4 upgrade guide explain every RC-to-WebDriver change?
No. It addresses upgrades from Selenium 3 to Selenium 4. RC migrations need guidance specific to the binding and legacy APIs in use.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




