Selenium 4.38 Released!

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

We’re excited to announce the release of Selenium 4.38 for JavaScript, Ruby, Python, .NET, Java and the Grid! 🎉

Links to all assets can be found on our downloads page.


Selenium 4.38 Released

Selenium 4.38 is a maintenance-focused release with improvements in code quality, documentation formatting, and test infrastructure. The update includes ongoing work on BiDi features, cleanup of deprecated code, and expansion of JSpecify annotations for better type safety in Java.


Highlights

  • Chrome DevTools support is now: v142, v141, and v140.
  • Java JSpecify Coverage Expanded: Dozens of additional classes annotated to improve null-safety and developer experience.
  • Python Docstring and BiDi Work: Switched to Google-style docstrings and added support for set_timezone_override in BiDi emulation.
  • Ruby Cleanup: Deprecated logging classes removed and RSpec linting applied.
  • Infrastructure & Docs: Test workflows cleaned up, doc update jobs fixed, and Travis cruft removed from builds.

Language-specific Changes

Java

  • JSpecify annotations added for:
    • ExecuteMethod
    • org.openqa.selenium.federatedcredential
    • org.openqa.selenium.interactions
    • org.openqa.selenium.net
    • Credential, MBean
    • ScriptKey, UnpinnedScriptKey
    • FileDetector
    • ExpectedCondition
    • Response, SessionId, HttpSessionId
  • BiDi:
    • New test added for the onHistoryUpdated event.

Python

  • BiDi:
    • Added set_timezone_override command under emulation.
  • Documentation:
    • Converted more docstrings to Google style.
    • Removed use of :param: and :args: Sphinx directives.
  • Tooling:
    • Bumped ruff formatter/linter version.

.NET

  • BiDi:
    • Updated DTO property inclusion to avoid reliance on JsonInclude.

Ruby

  • BiDi test infra:
    • Reduced number of BiDi-related test targets for better performance.
    • Disabled dev/shm for Chrome/Edge tests on RBE.
  • Code cleanup:
    • Removed deprecated logging classes.
    • Applied rspec linter syntax updates.
    • Fixed nil handling in network requests.
  • Build improvements:
    • Improved local dev environment generation.

Rust (Selenium Manager)

  • Fixed browser version test for Edge.

Tooling & Infrastructure

  • Removed unused test_tag_filter.
  • Removed legacy Travis CI environment code (Java, Ruby).
  • Fixed documentation update workflows for both staging and main releases.

🐳 Docker Selenium

  • [ci] Use test public site when test run via relay session to cloud
  • K8s: Remove triggerMetadata with empty value to prevent Unmatched input property from KEDA checks (#3005)
  • K8s: Expose config session request timeout in Helm chart values (#3006)
  • chore(deps): update helm release kube-prometheus-stack to v79 (#3007)
  • 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

Selenium Docs & Website

Sri Harsha

Sri Harsha

Docker Selenium

Viet Nguyen Duc

Viet Nguyen Duc

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!