Selenium 4.37 Released!

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

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

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


Selenium 4.37 Released

Selenium 4.37 continues the work on WebDriver BiDi across bindings, improves CI reliability and platform support, and delivers several cleanups and internal refactors. This release also tightens type safety, modernizes APIs, and removes legacy functionality that had been deprecated for some time.


Highlights

  • Chrome DevTools support is now: v141, v140, and v139.
  • BiDi Expansion in .NET: Emulation, downloads, network commands, and major internal performance and serialization improvements.
  • Python Platform and CI Updates: Python 3.14 support, Python 3.9 dropped, and Windows fully restored in CI.
  • Java Reliability Improvements: Better error reporting during session creation and new HTTP client capabilities.
  • Grid Stability: Event bus heartbeat added to prevent stale or stolen connections.
  • Cleanup of Deprecated APIs: Removal of obsolete FTP proxy support and other long-deprecated paths.

Language-specific Changes

Java

  • Improved error handling:
    • Remote session creation errors now properly surface underlying causes.
  • Added NullAway static analysis for improved null-safety.
  • Introduced native Java 11 HTTP client methods to the HttpClient interface.
  • Refactored remote command logic to reduce duplication.
  • Made BiDi and DevTools augmentation lazy-loaded.
  • Added JSpecify annotations for:
    • org.openqa.selenium.grid.jmx
    • org.openqa.selenium.bidi.permissions
  • Fixed ARM Linux architecture detection (aarch64).
  • Documentation typo fix in invisibilityOf.

Python

  • Platform support:
    • Added support for Python 3.14.
    • Dropped support for Python 3.9.
  • BiDi improvements:
    • Added tests for classic navigation request handlers.
    • Fixed default rpId in virtual authenticator.
    • Raised NotImplementedError for unsupported download deletion.
  • Configuration and stability:
    • WebSocket timeout and wait interval now configurable via ClientConfig.
    • Chromium kwargs defaults restored.
    • MIME types now guessed when serving content via the webserver.
  • CI and testing:
    • Windows re-enabled in CI workflows.
    • Added unit test jobs and Windows integration tests.
    • Internal Remote tests now use Chrome instead of Firefox.
  • Code quality:
    • Extensive mypy fixes.
    • Updated docstrings to Google style guidelines.
    • Removed legacy Travis CI xfail markers.

.NET

  • Major BiDi enhancements:
    • Emulation module support.
    • Download events and SetDownloadBehaviour.
    • Network commands including SetExtraHeaders.
    • Added Request data type in Network module.
  • Performance and correctness:
    • Faster message deserialization.
    • Immediate type info during serialization.
    • Replaced lazy caching with eager initialization.
    • AOT-safe enum serialization.
    • Correct handling of negative zero responses.
  • API cleanup:
    • Removed obsolete FtpProxy.
    • Removed unnecessary command type metadata.
    • Introduced specific result types per command.
  • Infrastructure:
    • Improved support for copying Selenium Manager binaries in .NET Framework projects.

Ruby

  • Updated Chrome and Edge arguments used in test environments.
  • Removed prism dependency.
  • Removed JSON version constraint.
  • BiDi:
    • Removed Firefox guard for download event listening.
  • Test suite fixes and general cleanup.

Selenium Grid

  • Added event bus heartbeat to prevent stale or stolen connections between components.
  • Continued internal stability and connection management improvements.

Build, CI, and Tooling

  • Stress tests split for better isolation and reliability.
  • CI workflows updated and stabilized across platforms.
  • Internal file structure adjustments to match browser protocol changes.
  • Version metadata handling cleaned up in PDL files.

🐳 Docker Selenium

  • Docker: Switch supply chain to get backward Chrome versions deb binary
  • Update Helm release postgresql to v18 (#2980)
  • Update Helm release redis to v23 (#2981)
  • Update softprops/action-gh-release action to v2.4.0 (#2982)
  • chore(deps): update dependency python to 3.14 (#2983)
  • chore(deps): update ubuntu:noble docker digest to 66460d5 (#2989)
  • chore(deps): update helm release kube-prometheus-stack to v78 (#2985)
  • Docker: Roll back default value of SE_DISTRIBUTOR_SLOT_SELECTOR as empty (#2993)
  • K8s: Instead of probe to restart Distributor, adding event bus heartbeat to prevent steal connection (#2995)
  • 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

Diego Molina

Diego Molina

Ethan

Ethan

Alex Popov

Alex Popov

Manuel Blanco

Manuel Blanco

Matthias Kurz

Matthias Kurz

Noel Kim (김민혁)

Noel Kim (김민혁)

Pallavi Sharma

Pallavi Sharma

Selenium Docs & Website

Benjamin Loison

Benjamin Loison

Docker Selenium

Viet Nguyen Duc

Viet Nguyen Duc

Selenium Team Members

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

Augustin Gottlieb

Augustin Gottlieb

Andrei Solntsev

Andrei Solntsev

David Burns

David Burns

Boni García

Boni García

Corey Goldberg

Corey Goldberg

Diego Molina

Diego Molina

Sri Harsha

Sri Harsha

Nikolay Borisenko

Nikolay Borisenko

Alex Rodionov

Alex Rodionov

Puja Jagani

Puja Jagani

Michael Render

Michael Render

Simon Benzer

Simon Benzer

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!