selenium-4.35.0
Breaking Changes📦 seleniumView on GitHub →
⚠ 3 breaking✨ 18 features🐛 13 fixes⚡ 1 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
- Replace any usage of `AppCacheStatus` with the new appropriate cache handling API.
- Update .NET BiDi code to remove calls to `NavigateBack` and `NavigateForward` and use the new navigation commands.
- Upgrade build environment to Java 11 or newer, as Java 8 stream collectors have been removed.
- 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.