Selenium 4.39 Released!

Today we’re happy to announce that Selenium 4.39 has been released!

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.setTimezoneOverride
      • emulation.setScriptingEnabled
      • emulation.setUserAgentOverride
      • browser.setDownloadBehavior
      • browsingContext.setViewport(null, null)
    • Refactored request interception tests with CORS handling.
  • JSpecify annotations:
    • CommandCodec, CommandInfo, CommandPayload, Color, ChromiumDriver, and more.
  • Other:
    • Prevent logging debug logs at INFO level.
    • Fixes for PrintOptions.setPageRanges, ClassCastException, and Chrome tests on Windows.
    • Improvements to exception handling and collection simplification.

Python

  • BiDi:
    • Added:
      • set_locale_override
      • set_scripting_enabled
      • set_screen_orientation_override
      • set_download_behavior
      • set_user_agent_override
      • Viewport reset command
    • Enabled download event tests for Firefox.
  • Documentation & Type Hints:
    • Full docstring conversion to Google format.
    • Removed noqa markers, improved type annotations with union syntax.
  • Dev/Tooling:
    • Bumped pytest, ruff, mypy, and urllib3.
    • WebSocket improvements (daemon threads).
    • Test reuse and performance improvements.

.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).

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 SessionRemovalInfo and 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

Giulio Longfils

Alex Popov

Alex Popov

Manuel Blanco

Manuel Blanco

RENATO SPENCER

RENATO SPENCER

Selenium Docs & Website

Devansh Pandey

Devansh Pandey

ian zhang

ian zhang

Blanca Janet Moreno

Blanca Janet Moreno

Kat Rollo

Kat Rollo

Pallavi Sharma

Pallavi Sharma

Rushikesh Dehankar

Rushikesh Dehankar

Docker Selenium

Michael Göhler

Michael Göhler

Selenium Team Members

Thanks as well to all the team members who contributed to this release:

Augustin Gottlieb

Augustin Gottlieb

Andrei Solntsev

Andrei Solntsev

David Burns

David Burns

Boni García

Boni García

Corey Goldberg

Corey Goldberg

Diego Molina

Diego Molina

Sri Harsha

Sri Harsha

Nikolay Borisenko

Nikolay Borisenko

Alex Rodionov

Alex Rodionov

Puja Jagani

Puja Jagani

Michael Render

Michael Render

Simon Benzer

Simon Benzer

Simon Mavi Stewart

Simon Mavi Stewart

Titus Fortner

Titus Fortner

Viet Nguyen Duc

Viet Nguyen Duc

Stay tuned for updates by following SeleniumHQ on:

Happy automating!