Change8

selenium-4.35.0

Breaking Changes
📦 seleniumView on GitHub →
3 breaking18 features🐛 13 fixes1 deprecations🔧 13 symbols

Summary

This Selenium release adds numerous BiDi enhancements, nullable annotation support, and dependency updates while fixing several bugs and removing deprecated APIs such as AppCacheStatus and old navigation commands.

⚠️ Breaking Changes

  • Removal of deprecated AppCacheStatus enum from the HTML5 package (Java) may break code that references it.
  • Removal of NavigateBack and NavigateForward commands from the .NET BiDi implementation breaks existing calls to those methods.
  • Removal of old stream collectors required by Java 8 may break builds on Java 8; a newer Java version is now required.

Migration Steps

  1. Replace any usage of `AppCacheStatus` with the new appropriate cache handling API.
  2. Update .NET BiDi code to remove calls to `NavigateBack` and `NavigateForward` and use the new navigation commands.
  3. Upgrade build environment to Java 11 or newer, as Java 8 stream collectors have been removed.
  4. Adjust imports to use the new @Nullable/JSpecify annotations where applicable.

✨ New Features

  • Get tree command now returns a GetTreeResult object in .NET BiDi.
  • .NET BiDi internal modules are initialized without Lazy loading.
  • Added high‑level API for the BiDi script module (pin, unpin, execute) in Python.
  • Added documentation note for `enable_webextensions = False` in Python BiDi docs.
  • Added UnhandledPromptBehavior option to create User Context in .NET BiDi.
  • Implemented IPv6 free TCP port discovery via DualMode in .NET.
  • Added @Nullable and JSpecify nullable annotations to Firefox, Gecko, Safari, and InternetExplorer driver services (Java).
  • Added JSpecify annotations for By locators and for capabilities (Java).
  • Added "URI" as a sort‑by choice on the Grid Overview UI.
  • Implemented BiDi module emulation in Python.
  • Updated API documentation generation script and included BiDi emulation docs (Python).
  • free_port() now binds to IPv6 if IPv4 is unavailable (Python).
  • Re‑packed Selenium Manager as a native dependency for .NET.
  • Migrated Grid cache implementation from Guava CacheBuilder to Caffeine.
  • Updated base URL for Edge WebDriver in both Rust and .NET implementations.
  • Bumped zip library version from 2.6.1 to 4.2.0.
  • Updated @emotion/styled dependency to v11.14.1 (JavaScript).
  • Updated which dependency from 7.0.3 to 8.0.0 (Rust).

🐛 Bug Fixes

  • Fixed Unicode value for OPTION key in Keys enum (Java).
  • Fixed various typographical errors across the codebase.
  • Corrected email address in .mailmap.
  • Fixed path handling in Python unit tests for cross‑platform compatibility.
  • Fixed API documentation generation script.
  • Fixed vendor prefix for Edge browser (Python).
  • Fixed Selenium‑Manager binary location (Python).
  • Fixed race condition for .NET Framework when internal tracing is enabled.
  • Fixed race condition and improved logging in Grid LocalSessionMap.
  • Fixed race condition in .NET driver output logging.
  • Fixed typographical errors in JavaScript and Ruby files.
  • Fixed typographical errors in comments.
  • Fixed typographical errors in .NET source files.

🔧 Affected Symbols

AppCacheStatus (Java)GetTreeResult (dotnet)NavigateBack (dotnet)NavigateForward (dotnet)Keys.OPTION (Java)free_port (Python)SeleniumManager binary path handling (Python)FirefoxDriverService (Java)GeckoDriverService (Java)SafariDriverService (Java)InternetExplorerDriverService (Java)By (Java) – JSpecify annotationsCapabilities (Java) – JSpecify annotations

⚡ Deprecations

  • AppCacheStatus enum was deprecated before its removal.