selenium-4.37.0
Breaking Changes📦 seleniumView on GitHub →
⚠ 6 breaking✨ 24 features🐛 12 fixes⚡ 3 deprecations🔧 19 symbols
Summary
Selenium 4.x release adds extensive BiDi enhancements, native Java 11 HTTP client methods, drops Python 3.9 support, and includes numerous bug fixes and new features across all language bindings.
⚠️ Breaking Changes
- Python 3.9 support removed; upgrade to Python >=3.10 (or 3.14) to use this release.
- IEnumerable of command results removed from the .NET BiDi API; update code to use the new specific result types.
- Obsolete FtpProxy class removed from the .NET library; replace usage with alternative proxy configuration.
- JSON converter attributes moved from centralized options to their respective types in .NET; adjust serialization attribute usage.
- Browser protocol file fetching adapted to a new file structure; update any custom fetching logic accordingly.
- Removal of the Firefox guard for canListenToDownloadWillBeginEvent may affect listeners; adjust event handling.
Migration Steps
- Upgrade your Python runtime to >=3.10 (or 3.14) and adjust any code that relied on Python 3.9 behavior.
- Replace usage of IEnumerable<CommandResult> with the new specific result types in .NET BiDi code.
- Remove references to the obsolete FtpProxy class and configure proxies using the new mechanisms provided.
- Update .NET BiDi serialization attributes to the new per‑type locations instead of the centralized options.
- If you have custom logic that fetches browser protocol files, modify the paths to match the new file structure.
- Review event listeners for download events and remove reliance on the removed Firefox guard.
✨ New Features
- Re-added defaults for Chromium kwargs in the Python bindings.
- Added BiDi Emulation module for .NET.
- Implemented browsing context download events in .NET BiDi.
- Supported SetDownloadBehaviour command in .NET BiDi.
- Supported network SetExtraHeaders command in .NET BiDi.
- AOT‑safe enums serialization for .NET BiDi.
- Lazy‑loaded augmentation for HasBiDi/HasDevTools.
- Event bus heartbeat added to Selenium Grid to prevent stolen connections.
- Native Java 11 HTTP client methods added to the HttpClient interface.
- JSpecify annotations added for org.openqa.selenium.grid.jmx and org.openqa.selenium.bidi.permissions packages.
- Linux ARM "os.arch" system property handling added.
- WebSocket timeout and wait interval configurable via ClientConfig in Python.
- Raise NotImplementedError when deleting downloads in driver subclass (Python).
- Added --disable-dev-shm-usage flag to Chrome/Edge options for internal tests (Python).
- Guess mimetypes in webserver for content serving (Python).
- Added Request data type in Network module for .NET BiDi.
- Provide immediate type info when serializing BiDi messages.
- Deserialize BiDi events using JsonTypeInfo.
- Specific result type for any BiDi command.
- Fast deserialization of BiDi messages.
- Removed lazy caching mechanism in BiDi constructor.
- Moved JSON converter attributes to their respective types.
- Updated docstrings style to Google guidelines in Python.
- Added native Java 11 HTTP client methods to HttpClient interface.
🐛 Bug Fixes
- Fixed Selenium Manager tests on Windows (Python).
- Fixed chromedriver/msedgedriver service tests (Python).
- Fixed default rpId in virtual authenticator (Python).
- Fixed mypy errors in the by file and exceptions file (Python).
- Handled negative zero BiDi response in .NET.
- Rescued remote cause for session creation errors (Java).
- Fixed typo in invisibilityOf method documentation (Java).
- Corrected Linux ARM "os.arch" system property handling (Java).
- Removed old test xfail markers from Travis CI (Python).
- Re‑added Windows to CI workflows (Python).
- Updated internal Firefox tests to use driver fixture (Python).
- Added internal Remote tests to use Chrome instead of Firefox (Python).
🔧 Affected Symbols
ChromeOptionsEdgeOptionsClientConfigHasBiDiHasDevToolsBiDiNetworkFtpProxyIEnumerable<CommandResult>HttpClientWebSocketVirtualAuthenticatorSeleniumManagerGrid.EventBusJava HttpClient interfaceJava invisibilityOf methodJava os.arch handlingPython driver subclass delete downloadsPython WebServer mimetype guessing⚡ Deprecations
- IEnumerable<CommandResult> was deprecated before removal in the .NET BiDi API.
- FtpProxy was deprecated before being removed in the .NET library.
- The Firefox guard for canListenToDownloadWillBeginEvent was deprecated prior to removal.