Selenium 4.42 Released!

Today we’re happy to announce that Selenium 4.42 has been released!

We’re excited to announce the release of Selenium 4.42 for JavaScript, Ruby, Python, .NET, Java and the Grid! 🎉

Links to all assets can be found on our downloads page.


Selenium 4.42 Released

✨ Highlights

  • [.NET] A large BiDi consistency pass: unified event arguments, exposed BiDi functionality via interfaces, thread-safe event registration and processing, and commands/events that allocate close to nothing.
  • [Java] Implemented the BiDi speculation module, continued JSpecify nullability coverage (chromium, browsers, grid, devtools, docker packages), and fixed several Keys/ScriptKey correctness issues.
  • [Grid] Hardened the WebSocket router: a transparent TCP tunnel bypass path, handling for dropped close frames and idle disconnects, and a new NodeCommandInterceptor for pluggable command interception via --ext.
  • [Python] Expanded BiDi test coverage and added type stubs for lazily imported classes.
  • [JavaScript] Added a Color class to the JavaScript library.
  • [Build] Bumped to Bazel 9.

📦 Notable Changes

Java

  • Implemented the BiDi speculation module.
  • Continued JSpecify nullability annotations across the chrom*, browsers, grid.*, devtools, and docker packages.
  • Deduplicated Unicode PUA mappings in Keys, made OPTION an alias of ALT, and deprecated FN.
  • Fixed a regression that unnecessarily serialized binary streams in RemoteWebDriver.builder(), and guarded against an NPE in Platform.extractFromSysProperty.
  • Enhanced ScriptKey.toString() and masked script content in UnpinnedScriptKey.

Python

  • Expanded BiDi test coverage.
  • Added type stubs for lazily imported classes and modules.
  • Added a module for importing the latest DevTools version, and stopped closing externally provided log_output streams.

Ruby

  • Switched to portable Ruby.
  • Fixed a linter error in the ./go authors script.

.NET

  • Unified all BiDi event arguments to a consistent *EventArgs type, and exposed BiDi functionality via interfaces.
  • Made event registration and command/event processing thread-safe, with close to zero allocation per command/event.
  • Properly handled the WebSocket close handshake, and made any WebDriver disposable asynchronously.
  • Bumped the C# language version to 14.0.

Grid

  • Added a transparent TCP tunnel bypass path for the WebSocket data path in the Router.
  • Handled dropped close frames, idle disconnects, and high-latency proxying in the Router WebSocket.
  • Added NodeCommandInterceptor for pluggable command interception via --ext.
  • Fixed VNC capabilities not being propagated for sessions without a browserName.

Build & Infra

  • Upgraded to Bazel 9.
  • Fixed several CI reliability issues (RBE tests, lint/format CI, skipped failing Firefox Beta tests).

🐳 Docker Selenium

  • Docker: Mirror images to GitHub Container Registry (#3098)
  • Docker: Enable SE_VIDEO_EVENT_DRIVEN by default (#3084)
  • Unified configs for Dynamic Grid Docker and Kubernetes (#3088)
  • See all changes

We thank all our contributors for their incredible efforts in making Selenium better with every release. ❤️

For a detailed look at all changes, check out the release notes.


Contributors

Special shout-out to everyone who helped the Selenium Team get this release out!

Selenium

Selenium Docs & Website

Rushikesh Dehankar

Rushikesh Dehankar

Selenium Team Members

Thanks as well to all the team members who contributed to this release:

Andrei Solntsev

Andrei Solntsev

David Burns

David Burns

Corey Goldberg

Corey Goldberg

Diego Molina

Diego Molina

Sri Harsha

Sri Harsha

Navin Chandra

Navin Chandra

Nikolay Borisenko

Nikolay Borisenko

Alex Rodionov

Alex Rodionov

Simon Mavi Stewart

Simon Mavi Stewart

Titus Fortner

Titus Fortner

Viet Nguyen Duc

Viet Nguyen Duc

Stay tuned for updates by following SeleniumHQ on:

Happy automating!