selenium-4.30.0
Breaking Changes📦 seleniumView on GitHub →
⚠ 4 breaking✨ 15 features🐛 16 fixes🔧 26 symbols
Summary
Selenium 4.30 introduces extensive .NET nullability annotations, removes obsolete members, and adds numerous BiDi and Grid features while fixing a wide range of bugs across all language bindings.
⚠️ Breaking Changes
- Removed obsolete members and types for .NET 4.30; code referencing these members must be updated to use the new APIs.
- Enabled Nullable Reference Types across the .NET bindings; projects must enable nullable context or adjust code to handle nullable warnings.
- Made many BiDi types (e.g., LocalValue, RemoteValue, PartitionDescriptor, UrlPattern, Script.Target, LogEntry, BytesValue, Actions, ProxyConfiguration, Locator, ClipRectangle, RealmInfo, Origin) non-nested, changing their namespace and type names; update imports and usage accordingly.
- Trimmed CDP support when publishing AOT apps, which removes CDP assemblies from the published output; applications relying on CDP at runtime need to include them manually.
Migration Steps
- Replace any removed obsolete .NET members/types with their recommended replacements as listed in the 4.30 release notes.
- Enable nullable reference types in your .NET project (add <Nullable>enable</Nullable> to the csproj) or annotate your code to handle possible null values.
- Update imports and object constructions for BiDi types that were made non-nested (e.g., use Selenium.BiDi.RemoteValue instead of Selenium.BiDi.LocalValue.RemoteValue).
- If publishing AOT apps, manually include required CDP assemblies or disable the trimming option.
- Adjust Python code to use the By class attributes (By.ID, By.NAME, etc.) instead of raw string locators.
- Review and update any custom scripts that rely on the previous nested BiDi type hierarchy.
✨ New Features
- Added SystemClock singleton to .NET bindings.
- Added set viewport command for browsing context in BiDi (Ruby).
- Added support for handling user prompts in BiDi.
- Added Browser context activate command in BiDi (Ruby).
- Added event stop session traces in Grid (Node).
- Introduced new server start timeout variable in Grid.
- Added SetFiles command in Input module for BiDi (.NET).
- Added UnhandledPromptBehavior capability for new sessions in BiDi (.NET).
- Encapsulated BiDi transport inside a Broker class (.NET).
- Aligned Script.LocalValue.Map with the spec and enabled negative zero handling.
- Migrated RemoteValue to separate types in BiDi (.NET).
- Made various BiDi types non-nested to simplify the API (PartitionDescriptor, UrlPattern, Script.Target, LogEntry, BytesValue, Actions, ProxyConfiguration, Locator, ClipRectangle, RealmInfo, Origin).
- Added Selenium Manager support for nightly Grid builds in Rust.
- Updated Python bindings to use By class attributes instead of string literals.
- Improved test discovery and linting for Python bindings.
🐛 Bug Fixes
- Fixed dev environment to run tests on Windows/MacOS for .NET.
- Fixed \"no anonymous block parameter\" issue in Ruby 3.1.
- Revisited ignored integration tests for Chrome/Edge in .NET.
- Removed warning when passing null driver paths to driver service (.NET).
- Corrected type annotation for expected_conditions in Python.
- Parsed response before deserialization in .NET.
- Made internal console writer more flexible by accepting TextWriter (.NET).
- Fixed atoms generation lowdash issue (Issue 12549).
- Fixed Chrome and Firefox BiDi tests for CI RBE in JavaScript.
- Ignored devtools during linting in Python.
- Fixed code formatting in selenium_manager_tests.py (Python).
- Fixed pytest test discovery issues (Python).
- Renamed credentials test file to be executed (Python).
- Updated Python development instructions in README.
- Modified delete cookie implementation and added tests.
- Fixed test discovery for pytest and other CI related issues.
🔧 Affected Symbols
SystemClockWebDriver.SessionIdDriverFinderCDP generated codeRemoteValueLocalValueScript.LocalValue.MapPartitionDescriptorUrlPatternScript.TargetLogEntryBytesValueActionsProxyConfigurationLocatorClipRectangleRealmInfoOriginBrokerSetFiles commandUnhandledPromptBehaviorBy class attributesexpected_conditionsWebElementCapabilitiesDriverService