Selenium 4.45 Released!
Categories:
We’re excited to announce the release of Selenium 4.45 for JavaScript, Ruby, Python, .NET, Java and the Grid! 🎉
Links to all assets can be found on our downloads page.
Selenium 4.45 Released
✨ Highlights
- [Java] New support for driving Electron apps via
ElectronOptions/ElectronDriver, plus a publishedselenium-devtools-latestartifact. - Cross-binding Continued migration of shared “atoms” (
isDisplayed,getAttribute,find-elements) from Closure to TypeScript, now adopted across JavaScript, Ruby, Java, and .NET. - [Grid] Hardened the WebSocket proxy (pre-handshake race, TCP backpressure, fast-path framing)
and added Redis-backed
SessionQueuesupport alongside the already-bundled RedisSessionMap. - [Python] New high-level BiDi network APIs for request/response/auth handling and extra headers, plus BiDi script module alignment with the cross-binding API design.
- [Ruby] Deprecated the
curbHTTP client andChromium Profileclasses, and split responsibilities betweenService,DriverFinder, andOptions. - [Rust] Selenium Manager now prunes cache entries older than 30 days and switched its TLS
backend to
ring. - [Build] Broad CI/release modernization: Bazel bumped to 9.1 and a rerun-safe release pipeline.
📦 Notable Changes
Java
- Added support for driving Electron apps with
ElectronOptionsandElectronDriver. - Published a
selenium-devtools-latestartifact and removed deprecated logging classes. - Corrected deprecation annotations for JSON Wire error code APIs, and skip browser-restricted ports when picking a free port.
- Adopted the shared TypeScript atoms for
isShown/getAttribute.
Python
- Added high-level BiDi network APIs: request, response, and authentication handlers, plus extra headers support.
- Aligned the BiDi script module with the cross-binding API design, and close the BiDi websocket
on
quit(). - Extracted actions, alert, and color into dedicated libraries/subpackages.
- Marked Safari tests broken by SafariDriver 26.5 as expected failures.
Ruby
- Deprecated
curbHTTP client support and theChromium Profileclasses. - Separated concerns between
Service,DriverFinder, andOptions. - Adopted the shared TypeScript atoms, added Safari tests, and upgraded to Steep 2.0.
.NET
- Added support for using any external BiDi transport, plus a fake BiDi transport for tests.
- Expanded JSON data available on BiDi commands, events, and results, and added a download ID to download events.
- Made user-facing BiDi collections immutable, and improved exception messages for malformed capability URLs.
Grid
- Closed a pre-handshake race and applied TCP backpressure and fast-path framing in the WebSocket proxy.
- Bundled a Redis-backed
SessionMapby default and added Redis-backedSessionQueuesupport. - Added debug logging for file downloads.
Build & Infra
- Bumped Bazel to 9.1 and made the release pipeline rerun-safe.
- Set up trusted publishing from GitHub to npm, and generated release notes from the previous minor release tag.
- Continued disk-space and Bazel cache monitoring improvements across CI jobs.
🐳 Docker Selenium
- Docker: Add Redis external datastore support for Distributor configuration (#3137)
- Docker: Video recording starts via session capability se:recordVideo (#3131)
- K8s: Migrate subchart Redis to cloudpirates/redis from bitnami/redis (#3148)
- 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 Docs & Website
Noritaka Kobayashi
Docker Selenium
Nikita Sergeev
Selenium Team Members
Thanks as well to all the team members who contributed to this release:
Andrei Solntsev
David Burns
Boni García
Swastik Baranwal
Diego Molina
Sri Harsha
Navin Chandra
Nikolay Borisenko
Puja Jagani
Pallavi Sharma
Simon Mavi Stewart
Titus Fortner
Viet Nguyen Duc
Stay tuned for updates by following SeleniumHQ on:
Happy automating!




