Selenium 4.44.0 - new CLI, Redis Grid distributor, BiDi cleanup
Selenium 4.44.0 shipped on May 12, 2026. The release introduces an initial Selenium CLI tool, makes the Redis backed Grid Distributor a built in option, and lands a long round of dotnet and Python BiDi cleanup. It is a regular release, not a prerelease.
The full release notes and downloads are on the GitHub release page.
A new Selenium CLI tool
PR #17327 introduces the initial Selenium CLI tool. The release notes do not document a full command surface yet, so treat this as a foundation rather than a finished UX. Two related Rust commands ship next to it:
- PR #17364 adds a
--skillsflag that installs askills.mdfile. - PR #17405 adds a command to install
rules/rules.mdinto a repository.
If you maintain test infrastructure for Selenium, the new CLI is the bit to watch in the next few releases.
Grid: Redis distributor and legacy event compatibility
Two Grid changes matter for operators:
- PR #17396 makes the Distributor Redis backed implementation a built in option. No more custom build to use Redis as the distributor backing store.
- PR #17343 makes the Grid accept legacy
session-closedevent payloads, which keeps older nodes talking to newer hubs during rolling upgrades.
If you run a Selenium Grid on Kubernetes or on a shared host pool, both of these reduce upgrade friction.
Python BiDi gets a real code generator
The Python bindings move BiDi off hand curated files:
- PR #16914 adds a CDDL 2 Python generator.
- PR #17266 switches the bindings to use the generated BiDi files instead of the hand curated ones.
- PR #17378 extends the
create-bidi-srcgenerator to cover the full set of BiDi adjacent CDDL files. - PR #17371 implements high level APIs for
script. - PR #17392 improves docstrings in the generated BiDi modules.
Result: less drift between the BiDi spec and the Python client, plus a higher level surface for script work.
Smaller Python items in the same release:
- PR #17415 adds an edge service argument to inherit the browser i/o streams.
- PR #17368 bumps Python dependencies.
dotnet: BiDi alignment, signing, and a breaking option
The dotnet bindings get a lot of attention. Highlights:
- PR #17330 and PR #17331 statically declare BiDi commands and events.
- PR #17336, PR #17337, and PR #17338 align
SetDownloadBehavior,ContinueWithAuth, and the polymorphicSetGeolocationcommands. - PR #17328 removes members that were planned obsolete for 4.44.
- PR #17397 produces strongly signed assemblies.
- PR #16557 supports
UnhandledPromptBehavioras both string and map. The release notes mark this one as a breaking change.
Tests also move forward: PR #17353 targets .NET 10 and PR #17384 migrates dotnet tests to MTP. PR #17391 reduces logging interpolated string allocations.
Java fixes and nullability
The Java side is mostly cleanup and bug fixes:
- PR #17340 deprecates the
nativemethods inside theHttpClientinterface. - PR #17325 specifies nullability in package
org.openqa.selenium.remote. - PR #17348 fixes an NPE when the response status is null.
- PR #17287 fixes a
NoSuchElementExceptionfor customBylocators. - PR #17363 removes the
ChromiumDriver.capabilitiesfield.
If you have custom By implementations or read HTTP responses directly from the remote driver, retest after upgrading.
Upgrade notes
Three items are worth checking before a blind bump:
- dotnet
UnhandledPromptBehaviornow accepts both string and map. The notes call this a breaking change, so audit call sites passing this option. - Java
ChromiumDriver.capabilitiesis gone. Any code reading or writing that field needs an alternative. - dotnet now ships strongly signed assemblies, which can affect downstream packaging and dependency resolution.
A small Ruby quirk also lands in PR #17412: modern Firefox does not like both the -v and --log flags at the same time, so the Ruby driver no longer passes both.
Where to get it
- Release page: github.com/SeleniumHQ/selenium/releases/tag/selenium-4.44.0
- Repository: github.com/SeleniumHQ/selenium
- Tag:
selenium-4.44.0