Selenium 4.37 Released!
Categories:
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
HttpClientinterface. - Refactored remote command logic to reduce duplication.
- Made BiDi and DevTools augmentation lazy-loaded.
- Added JSpecify annotations for:
org.openqa.selenium.grid.jmxorg.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
rpIdin virtual authenticator. - Raised
NotImplementedErrorfor 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.
- WebSocket timeout and wait interval now configurable via
- 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
Requestdata 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.
- Removed obsolete
- Infrastructure:
- Improved support for copying Selenium Manager binaries in .NET Framework projects.
Ruby
- Updated Chrome and Edge arguments used in test environments.
- Removed
prismdependency. - 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_SELECTORas 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
Ethan
Alex Popov
Manuel Blanco
Matthias Kurz
Noel Kim (김민혁)
Pallavi Sharma
Selenium Docs & Website
Benjamin Loison
Docker Selenium
Viet Nguyen Duc
Selenium Team Members
Thanks as well to all the team members who contributed to this release:
Augustin Gottlieb
Andrei Solntsev
David Burns
Boni García
Corey Goldberg
Diego Molina
Sri Harsha
Nikolay Borisenko
Alex Rodionov
Puja Jagani
Michael Render
Simon Benzer
Simon Mavi Stewart
Titus Fortner
Viet Nguyen Duc
Stay tuned for updates by following SeleniumHQ on:
Happy automating!




