Releases & News
What changed, why it matters for your tests, and what to do about it. Curated from the official Selenium blog and release notes.
- Java
- Java 11+
- Python
- Python 3.10+
- .NET
- .NET 8 / .NET Framework 4.6.2+ (netstandard2.0)
- JavaScript
- Node.js 18+ (current LTS recommended)
- Ruby
- Ruby 3.1+
- Next major
- Selenium 5 (alpha builds planned; removes CDP-only code paths in favour of BiDi)
Release timeline
-
Selenium 4.48.0
BiDi protocol layers generated from a shared schema; Grid file transfer for Kubernetes, Docker and relay sessions
- Python Internal BiDi protocol layer is now generated from the binding-neutral schema; fixed W3C capabilities built from option lists.
- JavaScript Custom locator results normalised when empty; BiDi serialisation and domain layer with connection-level event subscription.
- .NET New SetMediaFeaturesOverride emulation command; unknown BiDi discriminators now throw instead of silently passing.
- Ruby Low-level BiDi protocol integration specs; fixed a silent hang on oversized WebSocket frames.
- Grid File upload and download now work for Kubernetes, Docker and relay sessions; se:remoteUrl no longer forwarded past the consuming Node.
- Infrastructure Selenium Manager and tooling honour DO_NOT_TRACK.
-
Selenium 4.47.0
Safari BiDi support on Safari Technology Preview; BiDi transport layer and subscription parameters
- All bindings Generated BiDi elements now link directly to the specification definitions, tightening cross-binding consistency.
- Java Subscription parameter handling for BiDi events.
- Infrastructure geckodriver 0.37.1 picked up by Selenium Manager.
-
Selenium 4.46.0
Binding-neutral BiDi schema introduced; JSON parsing hardened
- All bindings A single BiDi schema now drives generated code in Ruby (and progressively the other bindings), so features land together.
- Java JSON parsing made RFC compliant, including numbers with exponents.
- Infrastructure Selenium Manager detects more Firefox flavours.
-
Selenium 4.45.0
Electron app support in Java; high-level Python BiDi network API; Redis session storage bundled in Grid
- Java New ElectronOptions and ElectronDriver for driving Electron desktop apps; selenium-devtools-latest artifact published; deprecated logging classes removed.
- Python High-level BiDi network API: request and response handlers, authentication, extra headers. Script module aligned with the cross-binding design.
- JavaScript DOM atoms (isShown, getAttribute) rewritten in TypeScript and shared with Java and Ruby.
- .NET Pluggable BiDi transport; download ID tracking on BiDi events; user-facing collections immutable.
- Ruby curb HTTP client and Chromium Profile deprecated.
- Grid Redis-backed SessionMap bundled by default plus a Redis SessionQueue; WebSocket proxy gains TCP backpressure.
Breaking: Java: deprecated logging classes (org.openqa.selenium.logging.*) removed. Migrate to BiDi log handlers or driver service logs.Official release post → -
Selenium 4.44.0
Selenium CLI tool introduced; .NET assemblies strongly signed; Redis-backed Distributor
- Infrastructure A new Selenium CLI tool lands for managing browsers, drivers and Grid from one binary.
- .NET Main NuGet packages ship strongly signed assemblies; BiDi commands and events statically declared (breaking for low-level BiDi code).
- Python Switched to generated BiDi files; high-level script execution APIs; Edge service argument for I/O stream inheritance.
- Java Fixed NoSuchElementException regression for custom By locators; native HttpClient interface methods deprecated.
- Grid Redis-backed Distributor available as a built-in option for multi-instance high availability.
Breaking: .NET: low-level BiDi commands and events are statically declared; planned-deprecated members removed.Official release post → -
Selenium 4.43.0
Patch release fixing a Grid regression introduced in 4.42
- Grid Fixes a session-routing regression; upgrade straight to 4.43 if you run Grid.
-
Selenium 4.42.0
BiDi speculation module; .NET BiDi made thread-safe and near allocation-free; Grid command interceptors
- Java BiDi speculation module; Keys.OPTION is now an alias of ALT and Keys.FN is deprecated; regression in RemoteWebDriver.builder() binary streams fixed.
- Python Type stubs for lazily imported modules; new module exposing the latest DevTools version.
- .NET Unified *EventArgs types, BiDi exposed via interfaces, WebDriver is IAsyncDisposable, C# 14.
- Grid NodeCommandInterceptor for pluggable command interception via --ext; transparent TCP tunnel for WebSocket traffic.
-
Selenium 4.41.0
Native Kubernetes Dynamic Grid, session event API, event-driven video recording
- Grid KubernetesSessionFactory provisions browser Pods on demand with no Docker sidecar; new POST /session/{id}/se/event endpoint; video recording driven by session events; Traefik replaces NGINX in the Helm chart.
- All bindings driver.fireSessionEvent / fire_session_event lets tests signal the Grid (for example to keep only failed-test videos).
- Java JSpecify nullability annotations across BiDi packages; emulation.setScreenSettingsOverride.
- Python set_screen_settings_override; mypy type checking; lazy imports make import selenium faster.
- .NET Selenium Manager and driver services start and stop asynchronously (breaking); new Speculation module; CancellationToken support.
Breaking: .NET: driver service start/stop is now asynchronous. Await the driver factory methods.Official release post → -
Selenium 4.40.0
Screen orientation and network condition emulation; Python LocalWebDriver base class; legacy Firefox APIs removed
- Java BiDi setScreenOrientationOverride and setNetworkConditions; automatic screenshot and page source capture on failure in the reference test harness.
- Python New LocalWebDriver base class; deprecated FirefoxBinary and FTP proxy support removed.
- .NET SetScreenSettingsOverrideAsync, FileDialogOpened event, input module exposed; lower memory use in BiDi transport.
- Grid Smarter container naming in Dynamic Grid; concurrency fixes.
- Infrastructure Chrome DevTools support for versions 142 to 144.
Breaking: Python: FirefoxBinary removed. Set options.binary_location instead.Official release post → -
Selenium 4.39.0
Final 2025 release; continued BiDi module expansion
- All bindings Incremental BiDi coverage and dependency refreshes ahead of the 2026 cycle.
-
Selenium 4.36.0
Last release supporting Python 3.9
- Python Python 3.9 support was ended after this cycle; 4.37+ require Python 3.10 or newer.
Breaking: Python 3.9 is no longer supported from the next minor release.Official release post → -
Selenium 4.29.0
Chrome DevTools Protocol support removed for Firefox
- All bindings Firefox CDP (deprecated in 4.27 and 4.28) is gone. Use WebDriver BiDi for Firefox network, logging and script features.
Breaking: Firefox CDP removed. Any driver.getDevTools() usage against Firefox fails; switch to BiDi.Official release post →
Earlier 2025 releases (4.28 through 4.38) were monthly increments focused on BiDi coverage, Selenium Manager and dependency updates. See the full release archive.