Selenium 4.39 Released!
Categories:
We’re excited to announce the release of Selenium 4.39 for JavaScript, Ruby, Python, .NET, Java and the Grid! 🎉
Links to all assets can be found on our downloads page.
Selenium 4.39 Released
Selenium 4.39 is a feature-rich release with numerous improvements across the board. It brings enhancements to BiDi across Java, Python, and .NET, more emulation commands, major updates to Dynamic Grid behavior, and continuous work on JSpecify annotations. It also includes docstring cleanups, test infra upgrades, and build system optimizations.
Highlights
- Chrome DevTools support is now: v143, v142, and v141.
- BiDi Enhancements Across Languages: New emulation and download behavior commands for Java, Python, and .NET.
- Dynamic Grid Improvements: Better container handling, new labels, and minimum Docker API version enforcement.
- Docstring and Type Hinting: Continued work on Python docstrings using Google style and improving type hints.
- JSpecify Coverage in Java: Many new annotations for type-safety and better tooling support.
- Build & CI Enhancements: Optimized workflows, Bazel module updates, and CI improvements across languages.
Language-specific Changes
Java
- BiDi:
- Support for:
emulation.setTimezoneOverrideemulation.setScriptingEnabledemulation.setUserAgentOverridebrowser.setDownloadBehaviorbrowsingContext.setViewport(null, null)
- Refactored request interception tests with CORS handling.
- Support for:
- JSpecify annotations:
CommandCodec,CommandInfo,CommandPayload,Color,ChromiumDriver, and more.
- Other:
- Prevent logging debug logs at
INFOlevel. - Fixes for
PrintOptions.setPageRanges, ClassCastException, and Chrome tests on Windows. - Improvements to exception handling and collection simplification.
- Prevent logging debug logs at
Python
- BiDi:
- Added:
set_locale_overrideset_scripting_enabledset_screen_orientation_overrideset_download_behaviorset_user_agent_override- Viewport reset command
- Enabled download event tests for Firefox.
- Added:
- Documentation & Type Hints:
- Full docstring conversion to Google format.
- Removed
noqamarkers, improved type annotations with union syntax.
- Dev/Tooling:
- Bumped
pytest,ruff,mypy, andurllib3. - WebSocket improvements (daemon threads).
- Test reuse and performance improvements.
- Bumped
.NET
- BiDi:
- Improved event subscription and emulation module support.
- Better JSON (de)serialization contexts per module.
- Viewport reset, record equality, hydration, and type unification improvements.
- Added Permissions module.
- General:
- Migrated solution to
.slnx. - Removed obsolete dependencies (
Newtonsoft.Json,FtpProxy). - Syntax highlighting improvements for JS strings.
- Updated build tools (
paket,rules_dotnet).
- Migrated solution to
Ruby
- Fixed flaky
devtools_spec.rb. - Minor BiDi updates.
Rust (Selenium Manager)
- Bazel migration of
rules_rust.
Grid
- Minimum Docker API 1.44 support.
- Improved:
- Session ID handling
- Container labels
- Compose stack grouping
- Docker client logic
- Tracking
SessionRemovalInfoand improved session map cleanup.
Tooling & CI
- Cancel redundant CI runs.
- Mirror file workflow fixes and pagination.
- Bazel build improvements.
🐳 Docker Selenium
- K8s: Add transitionary support for FB_BASEURL to FB_BASE_URL (#3053)
- Docker: Add package fonts-thai-tlwg-ttf for Thai language (#3052)
- K8s: Template handle scaledJobOptions with value is zero (#3054)
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
Giulio Longfils
Alex Popov
Manuel Blanco
RENATO SPENCER
Selenium Docs & Website
Devansh Pandey
ian zhang
Blanca Janet Moreno
Kat Rollo
Pallavi Sharma
Rushikesh Dehankar
Docker Selenium
Michael Göhler
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!




