Releases: SeleniumHQ/selenium
Selenium 4.45.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
- [build] derive PR diff base from HEAD^1 instead of trunk tip by @titusfortner in #17438
- [build] setup trusted publishing from Github to npmrc by @titusfortner in #17445
- [build] generate release notes from previous minor release tag by @titusfortner in #17449
- [build] fix when to update lock files during the release process by @titusfortner in #17450
- [java] remove deprecated logging classes by @titusfortner in #17453
- [grid] Close pre-handshake race in WebSocket proxy by @shs96c in #17435
- [JavaScript] Correct handling for older browsers and missing casing by @AutomatedTester in #17451
- Use pyproject for Python runtime deps lock input by @titusfortner in #17452
- [rb] deprecate curb http client support by @titusfortner in #17443
- [javascript] Migrate find-elements atom from Closure to TypeScript by @AutomatedTester in #17458
- [py] replace rules_python sphinxdocs with local sphinx_docs rule by @titusfortner in #17461
- [build] Configure Renovate dashboard approval by @titusfortner in #17464
- [js] update vulnerable dependency with a range by @titusfortner in #17466
- [build] remove duplicated grid ui tests by @titusfortner in #17468
- [build] update java graphpql dependency by filtering out bad reference by @titusfortner in #17469
- [rb] upgrade to steep 2.0 by @titusfortner in #17470
- [rust] update dependencies by @titusfortner in #17472
- [build] update GitHub Actions to latest major versions by @titusfortner in #17475
- [dotnet] update dev dependencies by @titusfortner in #17474
- [dotnet] fix template caching by @titusfortner in #17476
- [dotnet] update system.text.json to 8.0.6 by @titusfortner in #17477
- [js] update dev dependencies by @titusfortner in #17479
- [dotnet] upgrade paket from v9 to v10 by @titusfortner in #17481
- [build] bump bazel version to 9.1 by @titusfortner in #17480
- [rust] update zip to v8 by @titusfortner in #17485
- [js] update eslint to v10 with fixes by @titusfortner in #17482
- [rb] Update ruby to 3.3.9 by @aguspe in #17484
- [dotnet] include snupkg files when packaging things up and allow the use of sourcelink by @AutomatedTester in #17467
- [build] update download-artifact to v8 by @titusfortner in #17493
- [dotnet] run format against slnx instead of looping csproj by @titusfortner in #17483
- [build] bump low-risk Bazel module dependencies by @titusfortner in #17494
- [rust] update reqwest to 0.13 by @titusfortner in #17488
- [dotnet] [build] Fix remote linkage in SourceLink by @nvborisenko in #17495
- [build] remove renovate update requests pending work done in #17427 by @titusfortner in #17498
- [dotnet] [build] Support deterministic build output by @nvborisenko in #17497
- [build] bump ruby versions to latest patch releases by @titusfortner in #17496
- [js] remove npm dependency by using bazel for everything by @titusfortner in #17499
- [build] bump rules_jvm_external by @titusfortner in #17501
- [build] bump rules_closure version by @titusfortner in #17500
- [build] clarify dependency pin and update tasks by @titusfortner in #17463
- [build] simplify commit-changes workflow by @titusfortner in #17503
- [build] add renovate dependency workflow by @titusfortner in #17504
- [py] update python dependencies by @titusfortner in #17490
- [dotnet] [test] Resolve obsolete warning about NUnit TestDelegate by @nvborisenko in #17520
- [dotnet] Direct dependency on Microsoft.Bcl.AsyncInterfaces by @nvborisenko in #17519
- [dotnet] [test] Add NUnit analyzer by @nvborisenko in #17522
- [build] remove overly complicated renovate workflow by @titusfortner in #17525
- [rb] move Ruby bindings to use typescript get attribute atom by @AutomatedTester in #17524
- [java] Prevent byte-buddy -jdkN variant from being picked by dependency updates by @pierluigilenoci in #17523
- [dotnet] Move .NET bindings to use new Typescript atoms for isShown,g⦠by @AutomatedTester in #17529
- [dotnet] [bidi] Add Download ID in events for downloading begin/end by @nvborisenko in #17531
- [dotnet] [bidi] Immutable user facing collections by @nvborisenko in #17533
- [build] dependency changes should run CI tests for given binding by @titusfortner in #17534
- [rb] Move atoms to use the typescript versions by @AutomatedTester in #17532
- [java] Move Java bindings to use Typescript atoms for isShown, getAtt⦠by @AutomatedTester in #17530
- [grid] Bundle Redis-backed SessionMap by default by @VietND96 in #17441
- [build] Expand Ubuntu disk cleanup and add pre-build space checks in CI by @AutomatedTester in #17538
- [build] Surface Bazel cache failures with diagnostics and graceful fallback by @AutomatedTester in #17541
- [js] Use the typescript atom for get attribute by @AutomatedTester in #17526
- [build] do not create targets for IE for browser tests by @titusfortner in #17548
- [rb] deprecate Chromium Profile classes by @titusfortner in #17557
- [py] mark Safari tests broken by SafariDriver 26.5 as xfail by @titusfortner in #17560
- [java] skip browser-restricted ports when picking a free port by @titusfortner in #17561
- [build] Use target_compatible_with to gate IE/Safari tests by @titusfortner in #17566
- [build] monitor disk and cache usage throughout a bazel job by @titusfortner in #17569
- [rb] add safari tests by @titusfortner in #16768
- [build] prune old codeql caches by @titusfortner in #17570
- [rb] update bazel test tags by @titusfortner in #17558
- [rb] separate concerns between Service, DriverFinder, and Options by @titusfortner in #17564
- [grid] Apply TCP backpressure across the WebSocket tunnel handler by @shs96c in #17543
- [rb] fix using environment variables to set drivers by @titusfortner in #17571
- [rust] Change command execution to argv by @bon...
Nightly
Selenium 4.44.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
Click to see all the changes included in this release
- fix(documentation): update artifact naming for generated docs by @diemol in #17332
- fix(ruby): retrieve devtools version dynamically for package verification by @diemol in #17335
- [dotnet] Don't truncate internal log messages at error/warn levels by @nvborisenko in #17333
- [dotnet] Safe modifications of internal log handlers by @nvborisenko in #17334
- [dotnet] Remove planned obsoleted members for 4.44 by @nvborisenko in #17328
- [dotnet] [bidi] Statically declare commands by @nvborisenko in #17330
- [dotnet] [bidi] Statically declared events by @nvborisenko in #17331
- [dotnet] Add C# 14 extension to polyfill
ArgumentNullException.ThrowIfNullby @RenderMichael in #16697 - [dotnet] [bidi] Align SetDownloadBehavior command by @nvborisenko in #17336
- [dotnet] [bidi] Align ContinueWithAuth command by @nvborisenko in #17337
- [dotnet] [bidi] Align SetGeolocation polymorphic command by @nvborisenko in #17338
- [dotnet] [test] In-process test webserver by @nvborisenko in #17339
- [java] deprecate the 'native' methods inside the HttpClient interface by @joerg1985 in #17340
- CDDL 2 Python generator by @AutomatedTester in #16914
- Fix py:local_dev rake task by @cgoldberg in #17342
- [grid] Accept legacy session-closed event payloads by @VietND96 in #17343
- [java] specify nullability in package
org.openqa.selenium.remoteby @asolntsev in #17325 - fix NPE when response status is null by @asolntsev in #17348
- [java] fix NoSuchElementException for custom By locators by @Chandan25sharma in #17287
- [py] Update docs with pytest example and minor formatting fixes by @cgoldberg in #17351
- [dotnet] Fix stopping of network monitoring via DevTools by @nvborisenko in #17352
- [dotnet] [test] Update tests to target .NET 10 by @nvborisenko in #17353
- [build] Clean extra tools from GHA runner to free disk space by @cgoldberg in #17360
- Initial Creation of the Selenium CLI Tool by @AutomatedTester in #17327
- [java] fix some nullability warnings by @asolntsev in #17362
- [py] Use generated Bidi files instead of hand curated ones by @AutomatedTester in #17266
- [docs] Add AI-assisted contribution policy by @titusfortner in #17043
- [Agents] Update agents to make sure do linting. by @AutomatedTester in #17366
- [py] Bump dependencies by @cgoldberg in #17368
- [git] update gitignore to exclude mempalace by @AutomatedTester in #17369
- [java] remove field
ChromiumDriver.capabilitiesby @asolntsev in #17363 - [spec] Use http_file for the cddl files by @AutomatedTester in #17372
- [dotnet] [bidi] Obsolete Type(string) method in Input module by @nvborisenko in #17377
- Fix Network failures by @AutomatedTester in #17381
- [java] [test] Unignore bidi network conditions tests for Firefox by @nvborisenko in #17385
- [dotnet] [test] Unignore network conditions tests for Firefox by @nvborisenko in #17386
- [dotnet] [test] Migrate to MTP by @nvborisenko in #17384
- [dotnet] Support
UnhandledPromptBehavioroption as string and map (breaking change) by @nvborisenko in #16557 - [dotnet] [build] Combine bazel targets by @nvborisenko in #17387
- [dotnet] [build] Migrate resource generation to dotnet tool by @nvborisenko in #17388
- [dotnet] Improve logging interpolated string allocation by @nvborisenko in #17391
- [grid] Add Distributor Redis-backed implementation as built-in support by @VietND96 in #17396
- feat(py): extend create-bidi-src with full set of BiDi-adjacent CDDL β¦ by @AutomatedTester in #17378
- [rust] Add a skills flag that will install a skills.md file by @AutomatedTester in #17364
- [py] Implement high level APIs for script by @AutomatedTester in #17371
- [dotnet] [build] Simplify version.bzl file name by @nvborisenko in #17399
- [dotnet] Strongly signed assemblies by @nvborisenko in #17397
- [Rust] Add a command for installing rules/rules.md into a repository by @AutomatedTester in #17405
- [rust] Honor full chromedriver version if specified (#17298) by @bonigarcia in #17361
- [py] Add edge service arg to inherit browser i/o streams by @cgoldberg in #17415
- [Build] Upgrade rules_ruby to 0.25 by @AutomatedTester in #17417
- [rb] Modern Firefox does not like both the
-vand--logflags at the same time by @shs96c in #17412 - [py] Improve docstrings in generated BiDi modules by @AutomatedTester in #17392
- [build] fix parallelization for documentation release by @titusfortner in #17420
- [build] release python with trusted publishing by @titusfortner in #17421
- [bazel] Swap to rules_rs for Rust build rules by @dzbarsky in #17398
- [java] guard tests broken in chrome 149 by @titusfortner in #17426
- update qodo configuration for v2 by @titusfortner in #17424
- [build] create a github release draft before running publish by @titusfortner in #17422
- [dotnet][java][js][py][rb] Standardize README files across bindings by @aguspe in #17245
- [rb] Fix credential issue with private key by @aguspe in #17188
- [js] Fix MaxListenersExceededWarning in BiDi send by @devanngg in #17423
- [grid] Fix latent bugs in WebSocket proxy by @shs96c in #17429
- [py] fix linting and mypy to properly exclude generated bidi files by @cgoldberg in #17433
- [py] Update dev dependencies and fix type annotation by @cgoldberg in #17434
- [java] Use byte-buddy 1.18.8 instead of 1.18.8-jdk5 by @pierluigilenoci in #17382
- [js][py] Convert getAttribute atom from Closure to TypeScript by @AutomatedTester in #17370
- [JavaScript] Move 'isDisplayed' atom to be typescript by @AutomatedTester in #17316
- [dotnet] [bidi] Additional Event streaming (breaking change) by @nvborisenko in #17349
- [dotnet] [bidi] Add DisownData command in Network module by @nvborisenko in https://github.com/SeleniumHQ/...
Selenium 4.43.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
Full Changelog: selenium-4.42.0...selenium-4.43.0
Selenium 4.42.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
Click to see all the changes included in this release
- [rust][rb] Update lock files with new versions by @cgoldberg in #17118
- [dotnet] [bidi] Unify all event arguments to be *EventArgs by @nvborisenko in #17125
- [py] Add return type annotation to execute_script and execute_async_script by @adamtheturtle in #17117
- [dotnet] [bidi] Expose functionality via interface by @nvborisenko in #17127
- [dotnet] [bidi] Unregister cancelled commands by @nvborisenko in #17129
- [dotnet] [bidi] Properly handle websocket close handshake by @nvborisenko in #17132
- [ruby] fix linter error in
./go authorsscript by @asolntsev in #17136 - [nodejs] Color Class for Javascript library by @BckupMuthu in #16944
- [java] fix "or" condition by @asolntsev in #17135
- [java] Improve screenshot error message by @seethinajayadileep in #17120
- [java] fix "Don't serialize binary stream - it might be large" when using
RemoteWebDriver.builder()by @tim-burke-systemware in #17139 - [dotnet] [bidi] Wait until events are dispatched when unsubscribing by @nvborisenko in #17142
- [dotnet] Any WebDriver can be disposed asynchronously by @nvborisenko in #17119
- [grid] Router bypass WebSocket data path via transparent TCP tunnel by @VietND96 in #17146
- [dotnet] [bidi] Preserve configurable options pattern by @nvborisenko in #17144
- [rb] Use portable Ruby by @p0deje in #16936
- [java] Guard against NPE in Platform.extractFromSysProperty by @seethinajayadileep in #17151
- [java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by @seethinajayadileep in #17147
- [java] remove
@Nullablefrom return value forExpectedConditionsthat never return null by @asolntsev in #17149 - [java] Fluent setters in few classes like
PrintOptionsetc. by @asolntsev in #17148 - [dotnet] [bidi] Add disposed guard by @nvborisenko in #17161
- [java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by @seethinajayadileep in #17159
- [java] specify nullability in packages
org.openqa.selenium.chrom*by @asolntsev in #17152 - Nullability for browsers by @asolntsev in #17167
- [py] Use Self as return type of enter in remote.WebDriver by @pinterior in #17170
- [dotnet] [bidi] Convert RemoteValue to well-known types by @nvborisenko in #17027
- [dotnet] [bidi] Cache BrowsingContext/UserContext per session by @nvborisenko in #17172
- [java] Keys: enforce CharSequence contract in charAt() by @seethinajayadileep in #17166
- [java][BiDi] implement
speculationmodule by @Delta456 in #17130 - [java] specify nullability in
org.openqa.selenium.grid.*packages by @asolntsev in #17173 - [dotnet] [bidi] Revert... Wait until events are dispatched by @nvborisenko in #17178
- [dotnet] Use props file for legacy sdk by @nvborisenko in #17180
- [bidi] Convert RemoteValue to IDictionary by @nvborisenko in #17181
- [java] make the signature change in
ExecuteMethodbackward compatible by @asolntsev in #17183 - [java] specify nullability in package
org.openqa.selenium.devtoolsby @asolntsev in #17185 - [py] Add type stubs for lazy imported classes and modules by @cgoldberg in #17165
- [dotnet] Apply selenium theme for docs by @nvborisenko in #17190
- [py] Bidi py tests expansion by @AutomatedTester in #17193
- [dotnet] [bidi] Simplified how background tasks are started by @nvborisenko in #17198
- [grid] Router WebSocket handle dropped close frames, idle disconnects, high-latency proxying by @VietND96 in #17197
- [build] Fix Lint Format CI by @VietND96 in #17202
- [dotnet] [bidi] Optimize commands via ReadOnlyMemory by @nvborisenko in #17205
- [java] specify nullability in package
org.openqa.selenium.dockerby @asolntsev in #17191 - [dotnet] [bidi] Optimize processing of incoming messages by @nvborisenko in #17206
- [dotnet] [bidi] Add SetScrollbarTypeOverride command in Emulation module by @nvborisenko in #17171
- [dotnet] [bidi] Thread safe events registration by @nvborisenko in #17210
- [grid] Align Router-Node read timeout with session pageLoad capability by @VietND96 in #17211
- [py] Do not close externally provided log_output streams by @jit3pam in #17204
- [dotnet] [bidi] Keep events deserialization at transport layer by @nvborisenko in #17212
- [dotnet] [bidi] Parallel event handlers by @nvborisenko in #17213
- [java] specify nullability in other java packages by @asolntsev in #17194
- [dotnet] [bidi] ~Zero allocation per command/event by @nvborisenko in #17214
- [dotnet] Hide unnecessary chromium public fields by @nvborisenko in #17113
- [dotnet] [bidi] Don't propagate cancellation token for websocket by @nvborisenko in #17220
- [java] Fix saving docker logs to a file by @asolntsev in #17218
- [py][bidi]: skip
test_perform_actions_pointer_pen_typefor firefox by @navin772 in #17203 - [java] Fix duplicate field name handling in InstanceCoercer#getFieldWriters by @seethinajayadileep in #17187
- [grid] Dynamic Grid Docker configure container stop-grace-period by @VietND96 in #17222
- [java] Add field names to JsonException "Duplicate JSON field name..." by @asolntsev in #17225
- [build] Fix RBE tests by @VietND96 in #17233
- [build] Skip failing Firefox Beta tests by @cgoldberg in #17234
- [py] Create module for importing latest devtools by @cgoldberg in #17133
- [bazel] Update to Bazel 9 by @shs96c in #16757
- [grid] Fix VNC caps not propagated for sessions without browserName by @VietND96 in #17235
- [dotnet] [build] Bump up C# lang version to 14.0 by @nvborisenko in #17236
- [build] Fix py:local_dev rake task by @cgoldberg in #17238
- [dotnet] [bidi] Dedicated RealmInfoEventArgs type for OnRealmCreated event by @nvborisenko in #17240
- [py][build] Bump dev dependencies and toolchain by @cgoldberg in #17241
- [grid] Add NodeCommandIntercepto...
Selenium 4.41.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
Click to see all the changes included in this release
- [py] Remove type stub packages from runtime dependencies by @cgoldberg in #16945
- Canonical approach to supporting AI agent directions by @titusfortner in #16735
- [build] Pre-release workflow improvements by @titusfortner in #16946
- [build] Prevent nightly releases during release window by @titusfortner in #16948
- [build] Fix Bazel NuGet push implementation by @titusfortner in #16950
- [build] Release workflow improvements by @titusfortner in #16947
- [build] Fix Bazel JSDocs implementation by @titusfortner in #16949
- [build] Create config files from environment variables for publishing by @titusfortner in #16951
- [js] create task to update dependencies by @titusfortner in #16942
- [build] Java release improvements and build verification tasks by @titusfortner in #16952
- [py] integrate mypy type checking with Bazel by @titusfortner in #16958
- [build] Migrate workflows to use centralized bazel.yml by @titusfortner in #16955
- [dotnet] [bidi] Simplify context aware command options by @nvborisenko in #16954
- [build] simplify release.yml: remove draft, build once during publish by @titusfortner in #16960
- [dotnet] [bidi] AOT safe json converter for
Input.Originclass by @nvborisenko in #16962 - [dotnet] [bidi] AOT safe json converter for
OptionalConverterby @nvborisenko in #16963 - [dotnet] [bidi] Null guard for event handlers by @nvborisenko in #16967
- [java] Improve error message for died grid by @asolntsev in #16938
- [build] combine pre-release dependency updates by @titusfortner in #16973
- [rb] remove stored atoms these get generated by build by @titusfortner in #16971
- [dotnet] [bidi] Unignore some internal tests by @nvborisenko in #16968
- [build] run ruff on python files outside py directory by @titusfortner in #16957
- [py] Fix return type hint for
alert_is_presentby @nemowang2003 in #16975 - Replace hardcoded bazel-selenium references with dynamic path resolution by @titusfortner in #16976
- No More CrazyFun! by @titusfortner in #16972
- [build] Remove update_gh_pages in favor of CI workflow by @titusfortner in #16977
- [build] Remove legacy rake helpers and unused code by @titusfortner in #16978
- [py] make bazel test target names consistent with other languages by @titusfortner in #16969
- [dotnet] [bidi] Fix namespace for Permissions module by @nvborisenko in #16981
- [dotnet] [bidi] Hide Broker as internal implementation by @nvborisenko in #16982
- [dotnet] [bidi] Refactor BiDi module initialization to pass BiDi explicitly by @nvborisenko in #16983
- [build] Add DocFX updater script by @titusfortner in #16980
- [build] add reusable commit-changes.yml workflow by @titusfortner in #16965
- [java] fix JSON parsing of numbers with exponent by @joerg1985 in #16961
- [build] Skip macOS-only archive rules on unsupported platforms by @titusfortner in #16985
- [build] Split Rakefile into per-language task files by @titusfortner in #16979
- Implement fast bazel target lookup with index caching by @titusfortner in #16974
- [build] Remove git.add() calls from rake tasks by @titusfortner in #16994
- [js] Add eslint binary target for selenium-webdriver by @titusfortner in #16992
- [dotnet] Add bazel rules for dotnet format and paket deps by @titusfortner in #16986
- [dotnet] [bidi] Introduce CancellationToken for async commands by @nvborisenko in #16990
- [dotnet] [bidi] Support cancellation of events registration by @nvborisenko in #16996
- [build] Separate rust from all: namespace by @titusfortner in #16995
- [build] optimize fetch-depth across workflows by @titusfortner in #16966
- [build] consolidate pre-release workflow by @titusfortner in #16997
- [build] Support per-language patch releases by @titusfortner in #16987
- [build] retrigger CI after auto-format commits by @titusfortner in #17000
- [dotnet] have SE_DEBUG output driver logs to stderr by @titusfortner in #16903
- [dotnet] [bidi] Use
System.Threading.Channelsdependency for events dispatching by @nvborisenko in #17004 - [py] Replace //py:ruff with dedicated ruff-format and ruff-check targets by @titusfortner in #16998
- [build] use bazel to update python requirements by @titusfortner in #16930
- [dotnet] Add linting support with configurable dotnet format by @titusfortner in #16999
- [dotnet][rb][java][js][py] remove disk cleanup, add monitoring by @titusfortner in #17001
- [build] consolidate nightly workflow by @titusfortner in #17005
- [rb] output driver logs by default when debug is enabled by @titusfortner in #16901
- [build] use matrix for nightly releases by @titusfortner in #17010
- [rb] Update lint configuration and fix rubocop offenses by @titusfortner in #17008
- [py] Use lazy imports in webdriver init.py by @titusfortner in #16993
- [py][java][js] SE_DEBUG warns only when overriding user settings by @titusfortner in #17009
- mark
wait.untilas non-nullable by @asolntsev in #17007 - restore BiDi constructor without timeout parameter by @asolntsev in #17014
- [rust] Fix suppport for webview2 (#15797) by @bonigarcia in #17016
- [dotnet] Fix generation of inline docs for devtools members by @nvborisenko in #17017
- [build] auto merge browser version updates if they pass all checks by @titusfortner in #16991
- [py] Modularize Bazel build with per-module targets by @titusfortner in #17012
- [dotnet] update formatting rules by @titusfortner in #17019
- [grid] Preventing potential deadlock in Distributor by @VietND96 in #17022
- [rb] add missing unit tests by @titusfortner in #17025
- Report exactly which JSON value was incorrect by @asolntsev in #17003
- [build] Add permissions for nightly job in release workflow by @titusfortner in #17031
- ...
Selenium 4.40.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
Click to see all the changes included in this release
- [dotnet] Modernize
EnvironmentManager, standardize assembly teardown by @RenderMichael in #15551 - [java] Refactor tests by @asolntsev in #16684
- [ci]: bump cargo lockfile by @navin772 in #16698
- [java][BiDi] change emulation commands return type to void by @Delta456 in #16699
- [java] simplify strings processing by @iampopovich in #15309
- Fix few more flaky ruby tests by @asolntsev in #16695
- [bazel] Switch to custom
closure_js_depsrule by @shs96c in #16571 - [dotnet] [bidi] Support SetScreenSettingsOverrideAsync method in Emulation module by @nvborisenko in #16704
- [dotnet] Modernize code patterns in test suites by @RenderMichael in #16701
- use proper AssertJ asserts that generate a useful error message by @asolntsev in #16707
- fix Java language level in IDEA by @asolntsev in #16708
- [py] Properly verify Selenium Manager exists by @cgoldberg in #16711
- fix flaky Ruby test
element_spec.rbby @asolntsev in #16709 - [java][BiDi] implement
emulation.setScreenOrientationOverrideby @Delta456 in #16705 - [rb] add synchronization and error handling for socket interactions by @titusfortner in #16487
- [rb] mark low level bidi implementation as private api by @titusfortner in #16475
- [rb] ensure driver process is always stopped by @titusfortner in #15635
- [rb] create user-friendly method for enabling bidi by @titusfortner in #14284
- [dotnet] [bidi] Added missing Script.RemoteReference LocaclValue type by @nvborisenko in #16717
- [dotnet] Standardize
IEquatable<T>implementations across types overriding Equals by @RenderMichael in #16665 - [dotnet] Fix nullability warnings in
WebDriverby @RenderMichael in #16662 - [py] Don't compare object identity in conftest by @cgoldberg in #16723
- #16720 avoid failing because of temporary Chrome internal files by @asolntsev in #16722
- [rb] Add force encoding to remove warnings caused by json 3.0 by @aguspe in #16728
- [py] Remove deprecated FTP proxy support by @cgoldberg in #16721
- [py] Bump ruff and mypy versions by @cgoldberg in #16737
- Create target directories before copying file by @MohabMohie in #16739
- [bazel+closure]: Vendor the version of closure library we use by @shs96c in #16742
- [closure] Fix failing
//javascript/atoms:test-*targets by @shs96c in #16749 - Avoid sleep in tests by @asolntsev in #16713
- [bazel] Bump
rules_closureand google closure libary to latest release by @shs96c in #16755 - [refactor] call WebDriverException constructor instead of using reflection by @asolntsev in #16763
- [build] Pin Browsers in Bazel by default by @titusfortner in #16743
- [build] build selenium manager for tests by @titusfortner in #16736
- [refactor] replace JUnit assertions by AssertJ by @asolntsev in #16765
- [py] Add LocalWebDriver base class by @cgoldberg in #16730
- Fix bug in FileHandler: it always failed on MacOS by @asolntsev in #16771
- [java] add missing bazel artifacts by @titusfortner in #16773
- [bazel+js]: Wrap grid-ui tests with bazel by @shs96c in #16758
- Add missing build file by @shs96c in #16779
- [bazel] Flag fixes for the RBE by @shs96c in #16785
- [bazel+js]: Avoid shadowing directory with test name by @shs96c in #16784
- [py] Add type hints for WebElement.find_element(s) by @pixelsapphire in #16772
- [build] add explicit permissions to github workflows by @titusfortner in #16774
- [dotnet] Hide driver service window by default by @nvborisenko in #16782
- [rb] Fix steep issues by @aguspe in #16752
- [py][build]: consolidate Python CI tests by @titusfortner in #16766
- [dotnet] [bidi] Fix context aware event handlers by @nvborisenko in #16787
- [java] #16753 workaround for JDK bug JDK-8228970 by @asolntsev in #16793
- [java][BiDi] implement
emulation.setNetworkConditionsby @Delta456 in #16794 - [java] [refactor] replace most of Guava collections by Java built-in collections by @asolntsev in #16776
- [build] fix issue trying to guard actions run on forks by @titusfortner in #16800
- [py] Add/fix type hints for find_element/find_elements by @cgoldberg in #16786
- [ci] Use macos-latest instead of macos-13 in Rust workflow by @bonigarcia in #16803
- [py][bidi]: improve tests to use local no-proxy server by @navin772 in #16747
- [py][bidi]: add emulation command
set_network_conditionsby @navin772 in #16702 - [dotnet][java][py][rb][rust] Only use External Cache for GitHub Actions by @titusfortner in #16788
- [py] Add new ruff lint rules, fix violations and type annotations by @cgoldberg in #16789
- [java] Be more tolerant to remote responses by @asolntsev in #16797
- [py] pin python versions to specific patches by @titusfortner in #16795
- [java] Fix asserts for maps and sets by @asolntsev in #16808
- [js] fix JS tests on RBE by @titusfortner in #16777
- [py] Remove deprecated FirefoxBinary class by @cgoldberg in #16811
- [build] limit what check job pulls in by @titusfortner in #16815
- [rust] fix support for Edge beta versions on Windows by @titusfortner in #16806
- [py] Bump versions and remove unnecessary dev/test dependencies by @cgoldberg in #16820
- remove docker deploy code by @titusfortner in #16822
- [py] Fix type annotations, make docstrings consistent, centralize dependencies by @cgoldberg in #16821
- [java] several packages marks jspecify nullmarked by @iampopovich in #16802
- Update copyright to 2026 by @cgoldberg in #16830
- [rust] ignore force download for Safari by @titusfortner in #16825
- [dotnet] [bidi] Properly return shared buffer when disposing websocket by @nvborisenko in #16804
- [java] fix NPE in FirefoxOptions by @asolntsev in https://githu...
Selenium 4.39.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
Click to see all the changes included in this release
- [atoms] fix text node children are always considered as displayed #16284 by @joerg1985 in #16329
- [grid] Enhance UI with theme integration and improved status indicators by @VietND96 in #16512
- [py][bidi]: add emulation command -
set_locale_overrideby @navin772 in #16504 - [py][bidi]: add emulation command
set_scripting_enabledby @navin772 in #16513 - [py] Update docstrings to google pydoc format by @iampopovich in #16511
- [java][BiDi] implement
browsingContext.downloadEndevent by @Delta456 in #16347 - Fix typo and minor formatting changes in README.md by @cgoldberg in #16523
- [py] Update docstrings (remove reST leftovers and resolve D200) by @iampopovich in #16525
- [py] Fix docstring formatting and apply ruff linting rules by @cgoldberg in #16527
- [py] Fix Ruff D417 warnings in docstrings by @iampopovich in #16535
- [py] Fix ruff D415 warnings in docstrings by @cgoldberg in #16536
- [py][bidi]: add
set_screen_orientation_overridecommand in Emulation by @navin772 in #16522 - [py] Fix D205 ruff warnings for docstrings and add type hints by @iampopovich in #16537
- [py][bidi]: add
set_download_behaviorcommand by @navin772 in #16556 - [py] Bump pytest and dev dependencies by @cgoldberg in #16572
- [bazel] Move
rules_rusttobzlmodby @shs96c in #16566 - [ci] Make a PR for updating mirror file instead of pushing directly to trunk by @bonigarcia in #16579
- [ci] Update mirror info (2025-11-11T15:26:46Z) by @github-actions[bot] in #16578
- [ci] Revert latest changes related to the mirror workflow by @bonigarcia in #16580
- [java]: refactor request interception tests and handle CORS by @navin772 in #16585
- [py][bidi]: enable download event tests for firefox by @navin772 in #16587
- [py] Fix more type annotations by @iampopovich in #16551
- [java][BiDi] implement
emulation.setTimezoneOverrideby @Delta456 in #16530 - [grid] Minimum Docker API 1.44 for Docker Engine v29+ in Dynamic Grid by @VietND96 in #16591
- Show file modification time by @asolntsev in #16589
- [py][bidi]: add emulation command
set_user_agent_overrideby @navin772 in #16595 - [grid] Improve Docker client for Dynamic Grid by @VietND96 in #16596
- [py]: reuse driver in case of bidi tests by @navin772 in #16597
- [grid] Improve browser container labels and naming in Dynamic Grid by @VietND96 in #16599
- [build] Upgrade rules_dotnet to 0.20.5 by @nvborisenko in #16592
- [dotnet] [bidi] Simplify namespace for communications by @nvborisenko in #16602
- [py] Improve type hints with union syntax and native types by @cgoldberg in #16590
- [py] Use double quotes in generate.py by @Delta456 in #16607
- [ci] Use pagination in mirror workflow to get all Selenium releases by @bonigarcia in #16605
- [dotnet] Generate atoms statically by @nvborisenko in #16608
- [nodejs] Update dev dependencies to fix vulnerabilities by @cgoldberg in #16610
- [java][BiDi] emulation: allow passing null to GeolocationOverride by @Delta456 in #16594
- [grid] Update container label
compose.oneoffin Dynamic Grid by @VietND96 in #16613 - [grid] Dynamic Grid group dynamic containers in compose stack by @VietND96 in #16620
- [py] Use daemon threads for WebSocket connections by @cgoldberg in #16298
- [dotnet] Add syntax highlighting for JavaScript string methods by @RenderMichael in #16616
- [dotnet] Unwrap element wrapper recursively by @RenderMichael in #15362
- [dotnet] Simplify nuget package reference in Bazel by @RenderMichael in #16630
- [ci]: cancel previous CI run in case of new commit/push by @navin772 in #16624
- [ci]: remove concurrency checks in child workflows by @navin772 in #16633
- [dotnet] [bidi] Fix events subscription possibilities by @nvborisenko in #16603
- [dotnet] Pack
net462target framework by @nvborisenko in #16564 - [py][bidi] Allow resetting viewport by @cgoldberg in #16623
- [py] Use f-string in generate.py by @cgoldberg in #16641
- [java][BiDi] implement
emulation.setScriptingEnabledby @Delta456 in #16631 - [dotnet] Remove Newtonsoft.Json test-only dependency by @RenderMichael in #16639
- [dotnet] Update
paketbuild tool to 9.0.2 by @RenderMichael in #16637 - [dotnet] Update lock dependencies in bazel world by @nvborisenko in #16642
- [dotnet] [bidi] Possibility to reset viewport by @nvborisenko in #16601
- [java] Avoid logging debug logs with INFO level (either in RUN or DEBUG mode) by @asolntsev in #16584
- [java] Add JSpecify nullable annotations to exception classes by @iampopovich in #16026
- annotate with
@NullMarkedthe whole packageorg.openqa.selenium.netby @asolntsev in #16494 - [java][bidi]: add BiDi method
BrowsingContext.setViewport(null, null)to reset the mobile emulation mode by @asolntsev in #16524 - [java] Replace Maven dependency references with artifact() for org.jspecify.jspecify by @iampopovich in #16635
- 16612 download large files by @asolntsev in #16627
- #16573 unwrap double-wrapped webdriver by @asolntsev in #16575
- [dotnet] Implement third-party Permissions module by @RenderMichael in #16414
- [dotnet] [bidi] JsonSerializerContext instance per module by @nvborisenko in #16649
- [dotnet] [bidi] Immediately start to listen to incoming remote messages by @nvborisenko in #16651
- [dotnet] [bidi] Dedicated json context for all modules by @nvborisenko in #16652
- [dotnet] Move internal compiler services to Properties by @nvborisenko in #16653
- [dotnet] [bidi] Rent buffer for receiving bytes in WebSocket by @nvborisenko in #16650
- [dotnet] Migrate solution file to new
.slnxformat by @RenderMichael in #16638 - [dotnet] [bidi] Ignore non-serializable extension properties in BrowsingContext by @nvborisenko in #16654
- [dotnet] [bidi] Cache modules in the root BiDi by @...
Selenium 4.38.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
Click to see all the changes included in this release
- [dotnet] [bidi] Avoid using JsonInclude attribute to include optional property for DTO by @nvborisenko in #16413
- [rb] Bump prism to 1.6.0 by @Earlopain in #16450
- [java] JSpecify annotations for
ExecuteMethodby @mk868 in #16464 - [rb] Fix Network issue by removing nil values on network requests by @aguspe in #16442
- [py] Replaced :param: and :args: from docstrings by @iampopovich in #16469
- [java] JSpecify annotations for `org.openqa.selenium.federatedcredent⦠by @mk868 in #16461
- [java] JSpecify annotations for
org.openqa.selenium.interactionsby @mk868 in #16462 - [java][rb] Remove cruft from old Travis CI environment by @cgoldberg in #16473
- [java] JSpecify annotations for
org.openqa.selenium.netby @mk868 in #16463 - [rb] remove deprecated classes for previous implementation of log han⦠by @titusfortner in #16474
- [build] minimize number of ruby targets run with bidi by @titusfortner in #16477
- [java] JSpecify annotations for
CredentialandMBeanby @mk868 in #16481 - [java] JSpecify annotations for
ScriptKeyandUnpinnedScriptKeyby @mk868 in #16483 - [java] JSpecify annotations for
FileDetectorby @mk868 in #16482 - [java] JSpecify annotations for
ExpectedConditionby @mk868 in #16489 - [java] JSpecify annotations for
ResponseSessionIdHttpSessionIdby @mk868 in #16490 - [rb][build] improve ruby local_dev generation by @titusfortner in #16495
- [build] removing test_tag_filter tag that isn't being used anywhere by @titusfortner in #16496
- [rb][build] disable dev shm for Chrome and Edge on RBE by @titusfortner in #16497
- [rb] update syntax with rspec linter by @titusfortner in #16498
- [java][bidi]: add test for
onHistoryUpdatedevent by @navin772 in #16293 - [py] Bump version of ruff formatter/linter by @cgoldberg in #16502
- [rust] Fixe Edge version test by @bonigarcia in #16501
- [py][bidi]: add
set_timezone_overridecommand in emulation by @navin772 in #16500 - [py] Cleanup and convert more doctrings to google-style by @iampopovich in #16503
- [build] fix update-documentation workflow by @titusfortner in #16505
- fix workflows for updating documentation from stage release by @titusfortner in #16506
Full Changelog: selenium-4.37.0...selenium-4.38.0
Selenium 4.37.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
Click to see all the changes included in this release
- [py] Re-add defaults for Chromium kwargs by @cgoldberg in #16372
- Splitting stress tests by @diemol in #16374
- [rb] Update Chrome/Edge args for test environment by @cgoldberg in #16376
- [dotnet] [bidi] Emulation module by @nvborisenko in #16380
- [py] Remove old test xfail markers from Travis CI by @cgoldberg in #16377
- [dotnet] [bidi] Implement browsing context download events by @nvborisenko in #16382
- [dotnet] [bidi] Support browser SetDownloadBehaviour command by @nvborisenko in #16383
- [dotnet] [bidi] Support network SetExtraHeaders command by @nvborisenko in #16384
- [py][build] Python CI - add unit test job and windows integration tests to GH runners by @cgoldberg in #16362
- [java] Linux ARM "os.arch" system property is "aarch64" by @mkurz in #16381
- [dotnet] [bidi] AOT safe enums serialization by @nvborisenko in #16386
- [dotnet] Handle negative zero BiDi response by @RenderMichael in #15898
- [dotnet] Move JSON converter attributes from centralized options into their respective types by @RenderMichael in #16393
- [py] Fix Selenium Manager tests on Windows by @cgoldberg in #16391
- [py] Fix chromedriver/msedgedriver service tests by @cgoldberg in #16395
- [dotnet] [bidi] Modules as extensions by @nvborisenko in #16392
- [dotnet] [bidi] Provide type info immediately when serializing by @nvborisenko in #16397
- [bidi] [dotnet] Use events JsonTypeInfo for deserialization by @nvborisenko in #16402
- [dotnet] Replace lazy caching mechanism in BiDi's constructor with simple initialization by @RenderMichael in #16399
- [py][build] Re-add Windows to CI workflows by @cgoldberg in #16396
- [dotnet] Help more .NETFramework projects to copy SM binaries to output by @nvborisenko in #16406
- [dotnet] [bidi] Specific result type for any command by @nvborisenko in #16405
- [dotnet] [bidi] Deserialize message fast instead of defer it by @nvborisenko in #16403
- [dotnet] [bidi] Remove IEnumerable of command results by @nvborisenko in #16219
- [dotnet] Remove obsoleted FtpProxy by @nvborisenko in #16411
- [py] Configure WebSocket timeout and wait interval via ClientConfig by @cgoldberg in #16248
- [java] Rescuing the remote cause for session creation errors by @diemol in #16418
- [py] Add test for BiDi request handlers with classic navigation by @cgoldberg in #16421
- [java] NullAway added by @mk868 in #16416
- [java] feat: Add native Java 11 HTTP client methods to HttpClient interface by @manuelsblanco in #16412
- [py] Raise NotImplementedError when deleting downloads in driver subclass by @cgoldberg in #16423
- [java] refactor(remote/command): Merge overload's business logic by @nnnnoel in #14469
- [py] Fix default rpId in virtual authenticator by @cgoldberg in #16428
- make augmentation of HasBiDi/HasDevTools lazy-loaded by @asolntsev in #16338
- [py] Update docstrings style by @iampopovich in #16427
- [py] Support Python 3.14 and drop Python 3.9 by @cgoldberg in #16342
- Removing FF guard for canListenToDownloadWillBeginEvent by @diemol in #16439
- Adapting the browser_protocol file fetching to the file structure change. by @diemol in #16440
- [py]: add --disable-dev-shm-usage to Chrome/Edge options for internal tests by @navin772 in #16443
- [rb] Remove
prismdependency by @Earlopain in #16437 - [rb] Remove
jsonversion constraint by @Earlopain in #16436 - [grid] Add event bus heartbeat to prevent steal connection by @VietND96 in #16444
- [py] Use Chrome instead of Firefox for internal Remote tests by @cgoldberg in #16419
- [py] Update internal Firefox tests to use driver fixture by @cgoldberg in #16441
- Leaving the version block at the top of the PDL file by @diemol in #16448
- [py] Update docstrings style according to google guideline by @iampopovich in #16445
- [java] JSpecify annotations for
org.openqa.selenium.grid.jmxby @mk868 in #16431 - [java] JSpecify annotations for
org.openqa.selenium.bidi.permissionsby @mk868 in #16430 - [py]: guess mimetypes in webserver for content serving by @navin772 in #16449
- [dotnet] [bidi] Add Request data type in Network module by @nvborisenko in #16453
- [py] Fix mypy errors in by file and exceptions file by @pallavigitwork in #16300
- [dotnet] [bidi] Remove unnecessary command type info by @nvborisenko in #16454
- [Java] Fix typo in invisibilityOf method documentation by @ethbra in #16456
New Contributors
Full Changelog: selenium-4.36.0...selenium-4.37.0