Change8

selenium-4.31.0

Breaking Changes
📦 seleniumView on GitHub →
2 breaking9 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

  1. Update any usage of the `ContinueWithAuthCommand` to match the new specification.
  2. Replace Bazel `remote` configuration entries with `rbe` in build scripts.
  3. If your project relied on the `wgxpath` library, replace it with an alternative XPath engine as the library has been removed.
  4. Review .NET BiDi code for the newly decoupled types (EvaluateResult, AuthCredentials, etc.) and adjust imports or type references accordingly.
  5. 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)