selenium-4.31.0
Breaking Changes📦 seleniumView on GitHub →
⚠ 2 breaking✨ 9 features🐛 12 fixes🔧 23 symbols
Summary
Selenium 4.31.0 adds several new features, fixes numerous bugs across language bindings, and introduces breaking changes for .NET BiDi ContinueWithAuthCommand and Bazel remote configuration naming.
⚠️ Breaking Changes
- ContinueWithAuthCommand behavior changed to be closer to the spec; update code that uses this command accordingly.
- Bazel configuration key `remote` renamed to `rbe`; update build scripts to use the new `rbe` config.
Migration Steps
- Update any usage of the `ContinueWithAuthCommand` to match the new specification.
- Replace Bazel `remote` configuration entries with `rbe` in build scripts.
- If your project relied on the `wgxpath` library, replace it with an alternative XPath engine as the library has been removed.
- Review .NET BiDi code for the newly decoupled types (EvaluateResult, AuthCredentials, etc.) and adjust imports or type references accordingly.
- Check for sealed `RelativeBy` usage in .NET and update any custom subclassing.
✨ New Features
- Added ErrorCode for `DetachedShadowRootError` in the JavaScript driver.
- Added websocket port option in Firefox ServiceBuilder when `--connect-existing` is not passed.
- Exposed register status via Node status response in Selenium Grid.
- Added nullness annotations for AppCacheStatus, Credential, Either, and interaction classes in Java.
- Relocated `selenium-webdriver` package to the repository root directory.
- Simplified conversion to `LocalValue` in .NET BiDi implementation.
- Simplified `PopupWindowFinder.Invoke` method in .NET.
- Unified protected and internal `Execute` methods in .NET.
- Decoupled several BiDi types in .NET (EvaluateResult, AuthCredentials, WindowProxyProperties, ChannelProperties, ScreenshotOrigin, nested types in Locator).
🐛 Bug Fixes
- Fixed docstring issues that caused Sphinx warnings in Python bindings.
- Handled `getNamedCookie` and `deleteNamedCookie` for empty strings in Java.
- Fixed BiDi test errors in Ruby bindings.
- Adjusted Python service shutdown to only occur if the process has not already terminated.
- Sealed `RelativeBy` type to eliminate null warnings in .NET.
- Fixed storage module instance checks and added user‑context cookie test in JavaScript BiDi.
- Removed obsolete `js_dossiar` references in JavaScript code.
- Removed unused mocker argument in Chrome options test for Python.
- Corrected driver class name in Python test fixtures.
- Addressed lingering AOT warnings in .NET.
- Unignored GetClientWindows test for Chromium in .NET BiDi.
- Fixed null warnings in various .NET modules.
🔧 Affected Symbols
ContinueWithAuthCommandremote (Bazel config)wgxpathRelativeByPopupWindowFinder.InvokeExecute (protected/internal overloads)LocalValueEvaluateResultAuthCredentialsWindowProxyPropertiesChannelPropertiesScreenshotOriginLocator nested typesService.shutdown logic (Python)getNamedCookiedeleteNamedCookieDetachedShadowRootError (ErrorCode)Firefox ServiceBuilder (websocket port option)Node status response (register status)AppCacheStatusCredential (Java)Either (Java)Interaction classes (Java)