Selenium 4.52 Released!
Categories:
We’re excited to announce the release of Selenium 4.52 for JavaScript, Ruby, Python, .NET, Java and the Grid! 🎉
Links to all assets can be found on our downloads page.
Selenium 4.52 Released
✨ Highlights
- Selenium Manager now validates TLS certificates and explains certificate errors. An opt-in insecure mode is available for environments that need it.
- Trust roots were updated across bindings after the eMudhra CA distrust: Python requires a
newer
certifi, Selenium Manager bumps its trust roots, and JavaScript requires Node releases that block the compromised keys. - [Ruby] The client now raises on unverified Grid certificates instead of silently falling
back to
VERIFY_NONE. - [Python] [Ruby] BiDi WebSocket responses are no longer polled with sleeps, so commands
return faster. In Python,
websocket_intervalis now deprecated. - [Python] [JavaScript] First steps toward shipping Selenium Manager as a separate package.
- [JavaScript] The atoms that Appium uses were ported from Closure to TypeScript.
- [Build & Infra] Moved to Bazel 9.3.0 and updated all Bazel dependencies.
📦 Notable Changes
Java
selenium.debugandwebdriver.verbosenow configure the real logger.- BiDi events are no longer delivered to a listener after it is cleared.
- Stopped waiting for process output once the process is silent.
- Third-party jars are under
lib/in the distribution zips again, and annotation-only jars are no longer shipped as POM dependencies. - Added tests for the BiDi generator and to check the shipped bytecode supports Java 11.
Python
- Web extensions can be installed from the driver.
- Cookie domain and path matching now follow RFC 6265.
Service.start()is bounded by time, so it fails fast on Windows.- Fixed
ErrorHandlerfailing when the error value is missing, andProxynow uses thessl_proxysetting when created from a raw dict. - Generated BiDi numbers are held to their declared ranges, and null list elements are rejected.
Ruby
- HTTPS connections to the Grid now raise on unverified certificates instead of ignoring them.
- Stopped passing a bare
--proxyto Selenium Manager. - BiDi values are checked against their declared types and number ranges.
- Atoms now work outside Bazel, and
local_devmakes it easy to use a local checkout.
.NET
- Added a unit test suite and moved cookie, proxy, and other tests to it.
- Made driver configurations configurable through environment variables and NUnit parameters.
JavaScript
- Ported the atoms Appium uses to TypeScript.
- Fixed locator edge cases in the
find_elementsatom and ignored hidden links in link text locators. - Required Node releases that block the compromised eMudhra keys.
Grid
- A node config with a null stereotype now throws a
ConfigException.
Selenium Manager
- Validated TLS certificates in the HTTP client, with an opt-in insecure mode.
- Created the HTTP client on first use and explained TLS certificate errors.
- Returned the cached artifact once the lock is held instead of downloading it again.
- Stopped resolving a Java runtime on
--grid. - Updated dependencies, replaced the
fs2crate with the standard file lock, and moved fromsevenz_rusttosevenz_rust2.
Build & Infra
- Bumped to Bazel 9.3.0, enabled CDC, and updated all Bazel dependencies.
- Ran unit tests in parallel while keeping browser tests serial.
- Patched
rules_jvmto fix a 5 second hostname lookup deadlock in JUnit 5 tests. - Scoped RBE internet access to the tests that use Selenium Manager.
- Open bot PRs are now updated in place, and branches of PRs closed without merging are deleted.
🐳 Docker Selenium
- [build] Update base image to Ubuntu 26.04 (resolute) (#3272)
- [build] Update Selenium Grid 4.51.0 (#3267)
- [build] Update Selenium Grid 4.50.0 (#3257)
- [ci] Build FFmpeg natively per architecture, then merge (#3273)
- [test] Drop backward-compat Edge versions whose driver Microsoft has pruned (#3263)
- Update Helm release traefik to v42 (#3270)
- Update Helm release kube-prometheus-stack to v92 (#3258)
- 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
Daniel
Jyotheeswara Reddy Gottam
Nagendra Bhat
Mohamed Mostafa
Mohab Mohie
Sagar Kewat
Saiyam Jain
Yash Pardeshi
Selenium Docs & Website
Ujjwal Kumar Singh
Luca
harshil sharma
Stuart Minchington
Selenium Team Members
Thanks as well to all the team members who contributed to this release:
Augustin Gottlieb
ian zhang
David Burns
Boni García
Corey Goldberg
Diego Molina
Alex Popov
Nikolay Borisenko
Puja Jagani
Pallavi Sharma
Simon Mavi Stewart
Titus Fortner
Viet Nguyen Duc
Stay tuned for updates by following SeleniumHQ on:
Happy automating!



