Selenium 3 Beta 1: What’s New and How to Try It
Selenium 3.0.0-beta1 previewed the move from Selenium RC’s original implementation to WebDriver. Here are its changes, 2016 requirements, and archive-based trial steps.
Selenium 3.0.0-beta1 was a preview release announced by Simon Stewart on July 29, 2016. Its central change was replacing the original Selenium Core implementation behind Selenium RC with an implementation backed by WebDriver. Most WebDriver API users were told the upgrade would be a drop-in change; Java users who still needed the legacy RC APIs had to add a separate package. The Java components required Java 8, and the browser-driver requirements below describe the release era, not current setup advice. Read the beta announcement and find the official downloads archive.
1. What changed in Selenium 3.0.0-beta1?
The beta was an invitation to try the release and report rough edges, not a stable production recommendation. The major architectural change was removal of the original Selenium Core implementation used by RC. RC APIs were given a WebDriver-backed implementation instead. The public WebDriver APIs were not the focus of a redesign.
- WebDriver users: Selenium described 3.0 as a drop-in upgrade from 2.x for typical WebDriver API use.
- Legacy RC users: the implementation beneath those APIs changed. Java users needing them were directed to the separate
selenium-leg-rcpackage. Prefer migrating tests to WebDriver where feasible. - Java protocol changes: the beta changelog notes a remote WebDriver handshake that logged whether the wire dialect was OSS or W3C, different codecs instead of command names ending in
*w3c, and atom-based handling forgetAttributeandisDisplayedwith a W3C remote end. - HTML table tests: a new WebDriver-backed HTML table runner was listed, downloadable as
selenium-html-runner.jar.
These are beta-specific details; consult the Java beta changelog for the implementation notes.
2. Beta-era requirements and browser drivers
The following are requirements recorded for the 2016 beta. They are useful when reproducing that environment, not as instructions for a new Selenium project today.
| Area | Beta-era requirement or note |
|---|---|
| Java components | Java 8 minimum. |
| Firefox | Mozilla geckodriver. Firefox 48 required it because Firefox itself changed; the Selenium 3 migration article notes this applied even to Selenium 2 users. |
| Safari | Apple safaridriver on macOS Sierra or later. |
| Microsoft Edge | Microsoft’s WebDriver server. |
| Internet Explorer | Official support started at IE 9. |
Driver compatibility depended on the specific browser and operating system. Keep an archived beta trial isolated from a current browser installation where possible. For a new project, use the current Selenium documentation and current downloads page.
3. How to try the historical beta with Java
- Use an isolated project or environment and a Java 8 runtime, matching the beta’s documented Java minimum.
- Retrieve
selenium-java-3.0.0-beta1.zipor use the beta dependency in a dedicated Maven project. The official archive also lists .NET and server packages. - Install and configure the browser driver appropriate to the browser you are reproducing. For Firefox in this era, that meant geckodriver.
- Run a small WebDriver test first. If it works, try the application’s representative test cases. If the suite uses RC APIs, add the separate Java legacy package and test those cases independently.
- Record the Java, Selenium, browser, driver and operating-system versions alongside results so the historical run can be reproduced.
Maven example
The following pins the beta Java client for a historical experiment. The legacy dependency is optional and is only for tests that still call Selenium RC APIs.
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.0-beta1</version>
</dependency>
<!-- Add only if this project still uses the legacy Selenium RC APIs. -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-leg-rc</artifactId>
<version>3.0.0-beta1</version>
</dependency>
</dependencies>
For a WebDriver-only project, remove the optional selenium-leg-rc dependency. The announcement specified the legacy artifact for Java Maven users who needed RC APIs. Use the archived ZIP packages if you need the exact distribution files rather than Maven resolution.
Minimal Java WebDriver example
This example opens a page and prints its title. It assumes a compatible Firefox installation and a geckodriver executable available on the system path. Driver discovery and browser compatibility have changed since this beta; this is a historical trial pattern, not a current setup recipe.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class BetaSmokeTest {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
try {
driver.get("https://example.com");
System.out.println(driver.getTitle());
} finally {
driver.quit();
}
}
}
Compile and run it with the project’s Maven classpath, for example:
mvn compile
mvn exec:java -Dexec.mainClass=BetaSmokeTest
The second command requires the Maven Exec plugin in the project; alternatively run the compiled class from your IDE or with your normal Java launcher and dependency classpath.
4. Archive packages and non-Java users
The Selenium archive lists these beta 1 artifacts, dated July 29, 2016:
selenium-java-3.0.0-beta1.zipselenium-dotnet-3.0.0-beta1.zipselenium-dotnet-strongnamed-3.0.0-beta1.zipselenium-server-3.0.0-beta1.zipselenium-server-standalone-3.0.0-beta1.jar
For .NET or server experiments, download the matching archive artifact from Selenium’s official downloads page. Match the client, server and browser-driver versions to the environment you are trying to reproduce. This beta announcement and artifact list do not provide a modern, maintained installation path for those packages.
5. Upgrade and compatibility: WebDriver versus RC
| Existing test suite | Expected transition in the Selenium 3 era | Practical action |
|---|---|---|
| WebDriver APIs | Generally described as a drop-in upgrade from 2.x. | Pin the beta in a separate branch or environment, then run the suite and investigate failures. |
| Selenium Grid | The migration guidance described a straightforward JAR or Maven dependency update in typical cases, while noting some configuration and command-line changes. | Validate Grid configuration and launch options in the test environment. |
| RC APIs | The legacy implementation was replaced by one backed by WebDriver; compatibility issues were more likely. | Use the Java legacy package only if needed, isolate failing RC calls and plan migration. |
| Firefox 48 | Mozilla’s browser change required geckodriver independently of whether Selenium 2 or 3 was used. | Use the period-appropriate geckodriver when reproducing that browser setup. |
The October 4, 2016 migration post provides the project’s fuller explanation of the transition: Selenium 3 is Coming. The stable Selenium 3.0 release followed on October 13, 2016. This beta is now of historical interest; use current Selenium resources for new automation work.
6. Troubleshooting a beta 1 trial
| Symptom | Likely cause | What to check |
|---|---|---|
| Java rejects the Selenium classes or the program fails to load them | The runtime is older than the beta’s Java 8 minimum, or the downloaded client JARs are missing from the classpath. | Use Java 8 for the historical trial and confirm Maven resolved selenium-java:3.0.0-beta1 or that the ZIP’s libraries are on the classpath. |
| Firefox session cannot start | Geckodriver is absent, not executable, or incompatible with the historical browser environment. | Check the executable path and permissions and use a matching period-appropriate browser/driver setup. Firefox 48’s driver requirement was a browser change. |
| RC classes are missing | The RC APIs were moved out of the main Java package. | Add selenium-leg-rc:3.0.0-beta1 only for legacy code, or migrate the test to WebDriver. |
| RC calls behave differently after upgrading | The replacement RC implementation is backed by WebDriver rather than the original Selenium Core. | Reduce the failing test to the affected RC operations and update those calls or move them to WebDriver APIs. |
| Remote session reports protocol or command errors | Client and remote server may disagree on protocol dialect or beta-era behavior. | Use matching beta client/server artifacts, inspect the remote handshake log for OSS or W3C dialect, and avoid mixing this preview with unrelated server versions. |
| Safari or Edge does not launch | The required vendor driver or supported operating-system/browser arrangement is missing. | For the beta-era arrangement, Safari used Apple safaridriver on macOS Sierra or later and Edge used Microsoft’s WebDriver server. |
| Grid starts but nodes or options behave differently | Grid configuration or command-line options may have changed between versions. | Compare the beta invocation and configuration with the migration notes; test a minimal Grid setup before changing the full environment. |
7. Performance, reliability and cost
The release materials provide no benchmark figures, so there is no sourced basis for claiming that beta 1 was faster or more reliable than Selenium 2. As a beta, it was intended for evaluation and feedback; isolate it from production test infrastructure and expect to investigate rough edges. Selenium’s archived packages are available for reproducing the release. The dossier provides no price or usage figures for Selenium, so cost depends on the infrastructure and browser environments used to run tests.
8. Or skip the browser setup
If your immediate task is capturing a webpage image or PDF rather than automating browser interactions, ScreenshotNeo provides a one-request screenshot API and an MCP server. It does not replace Selenium for interactive end-to-end tests.
See the ScreenshotNeo API documentation. Example request:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo removes cookie banners, newsletter popups and chat widgets before the shot. Bot checks, blank pages and failed loads are never billed; responses identify page verdict and billing status in headers. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month, with no card.
9. FAQ
Was Selenium 3.0.0-beta1 a stable release?
No. It was a beta announced for users to try and provide feedback. The stable Selenium 3.0 release followed in October 2016.
Do I need Java 8 to try this beta?
Yes, for the Java components, Java 8 was the stated minimum for this release.
Did Selenium 3 require geckodriver?
For Firefox in the release era, yes. The migration post explains that Firefox 48 required geckodriver due to a change in Firefox itself, including for Selenium 2 users.
What happened to Selenium RC?
The original Selenium Core implementation behind RC was removed and replaced with a WebDriver-backed implementation. Java users who needed the legacy APIs had to add the separate leg-rc package.
Should I start a new project with this beta?
No. It is a historical preview. Use the current Selenium documentation and downloads for a new project.


