Skip to content

Release history

selenium releases

All releases

5 shown

Review required
selenium-4.44.0 Breaking risk
Breaking upgrade Auth

UnhandledPromptBehavior string/map support + strong signing

selenium-4.43.0 Maintenance

Minor fixes and improvements.

Full changelog

Detailed Changelogs by Component

Java     |     Python     |     DotNet     |     Ruby     |     JavaScript

Full Changelog: https://github.com/SeleniumHQ/selenium/compare/selenium-4.42.0...selenium-4.43.0

selenium-4.42.0 Breaking risk
Breaking changes
  • Deprecate `Keys.FN` in Java; make `Keys.OPTION` an alias of `Keys.ALT`.
Full changelog

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 https://github.com/SeleniumHQ/selenium/pull/17118
  • [dotnet] [bidi] Unify all event arguments to be *EventArgs by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17125
  • [py] Add return type annotation to execute_script and execute_async_script by @adamtheturtle in https://github.com/SeleniumHQ/selenium/pull/17117
  • [dotnet] [bidi] Expose functionality via interface by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17127
  • [dotnet] [bidi] Unregister cancelled commands by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17129
  • [dotnet] [bidi] Properly handle websocket close handshake by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17132
  • [ruby] fix linter error in ./go authors script by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17136
  • [nodejs] Color Class for Javascript library by @BckupMuthu in https://github.com/SeleniumHQ/selenium/pull/16944
  • [java] fix "or" condition by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17135
  • [java] Improve screenshot error message by @seethinajayadileep in https://github.com/SeleniumHQ/selenium/pull/17120
  • [java] fix "Don't serialize binary stream - it might be large" when using RemoteWebDriver.builder() by @tim-burke-systemware in https://github.com/SeleniumHQ/selenium/pull/17139
  • [dotnet] [bidi] Wait until events are dispatched when unsubscribing by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17142
  • [dotnet] Any WebDriver can be disposed asynchronously by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17119
  • [grid] Router bypass WebSocket data path via transparent TCP tunnel by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17146
  • [dotnet] [bidi] Preserve configurable options pattern by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17144
  • [rb] Use portable Ruby by @p0deje in https://github.com/SeleniumHQ/selenium/pull/16936
  • [java] Guard against NPE in Platform.extractFromSysProperty by @seethinajayadileep in https://github.com/SeleniumHQ/selenium/pull/17151
  • [java] Deduplicate Unicode PUA mappings in Keys; make OPTION an alias of ALT and deprecate FN by @seethinajayadileep in https://github.com/SeleniumHQ/selenium/pull/17147
  • [java] remove @Nullable from return value for ExpectedConditions that never return null by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17149
  • [java] Fluent setters in few classes like PrintOptions etc. by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17148
  • [dotnet] [bidi] Add disposed guard by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17161
  • [java] Enhance ScriptKey.toString() and mask script content in UnpinnedScriptKey by @seethinajayadileep in https://github.com/SeleniumHQ/selenium/pull/17159
  • [java] specify nullability in packages org.openqa.selenium.chrom* by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17152
  • Nullability for browsers by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17167
  • [py] Use Self as return type of enter in remote.WebDriver by @pinterior in https://github.com/SeleniumHQ/selenium/pull/17170
  • [dotnet] [bidi] Convert RemoteValue to well-known types by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17027
  • [dotnet] [bidi] Cache BrowsingContext/UserContext per session by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17172
  • [java] Keys: enforce CharSequence contract in charAt() by @seethinajayadileep in https://github.com/SeleniumHQ/selenium/pull/17166
  • [java][BiDi] implement speculation module by @Delta456 in https://github.com/SeleniumHQ/selenium/pull/17130
  • [java] specify nullability in org.openqa.selenium.grid.* packages by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17173
  • [dotnet] [bidi] Revert... Wait until events are dispatched by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17178
  • [dotnet] Use props file for legacy sdk by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17180
  • [bidi] Convert RemoteValue to IDictionary by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17181
  • [java] make the signature change in ExecuteMethod backward compatible by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17183
  • [java] specify nullability in package org.openqa.selenium.devtools by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17185
  • [py] Add type stubs for lazy imported classes and modules by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17165
  • [dotnet] Apply selenium theme for docs by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17190
  • [py] Bidi py tests expansion by @AutomatedTester in https://github.com/SeleniumHQ/selenium/pull/17193
  • [dotnet] [bidi] Simplified how background tasks are started by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17198
  • [grid] Router WebSocket handle dropped close frames, idle disconnects, high-latency proxying by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17197
  • [build] Fix Lint Format CI by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17202
  • [dotnet] [bidi] Optimize commands via ReadOnlyMemory by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17205
  • [java] specify nullability in package org.openqa.selenium.docker by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17191
  • [dotnet] [bidi] Optimize processing of incoming messages by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17206
  • [dotnet] [bidi] Add SetScrollbarTypeOverride command in Emulation module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17171
  • [dotnet] [bidi] Thread safe events registration by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17210
  • [grid] Align Router-Node read timeout with session pageLoad capability by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17211
  • [py] Do not close externally provided log_output streams by @jit3pam in https://github.com/SeleniumHQ/selenium/pull/17204
  • [dotnet] [bidi] Keep events deserialization at transport layer by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17212
  • [dotnet] [bidi] Parallel event handlers by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17213
  • [java] specify nullability in other java packages by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17194
  • [dotnet] [bidi] ~Zero allocation per command/event by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17214
  • [dotnet] Hide unnecessary chromium public fields by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17113
  • [dotnet] [bidi] Don't propagate cancellation token for websocket by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17220
  • [java] Fix saving docker logs to a file by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17218
  • [py][bidi]: skip test_perform_actions_pointer_pen_type for firefox by @navin772 in https://github.com/SeleniumHQ/selenium/pull/17203
  • [java] Fix duplicate field name handling in InstanceCoercer#getFieldWriters by @seethinajayadileep in https://github.com/SeleniumHQ/selenium/pull/17187
  • [grid] Dynamic Grid Docker configure container stop-grace-period by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17222
  • [java] Add field names to JsonException "Duplicate JSON field name..." by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17225
  • [build] Fix RBE tests by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17233
  • [build] Skip failing Firefox Beta tests by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17234
  • [py] Create module for importing latest devtools by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17133
  • [bazel] Update to Bazel 9 by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16757
  • [grid] Fix VNC caps not propagated for sessions without browserName by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17235
  • [dotnet] [build] Bump up C# lang version to 14.0 by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17236
  • [build] Fix py:local_dev rake task by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17238
  • [dotnet] [bidi] Dedicated RealmInfoEventArgs type for OnRealmCreated event by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17240
  • [py][build] Bump dev dependencies and toolchain by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17241
  • [grid] Add NodeCommandInterceptor for pluggable command interception via --ext by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17242
  • [dotnet] [bidi] Protected Subscribe method in Module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17260
  • [dotnet] [build] Move build targets from cdp to DevTools by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17267
  • [java] fix loading "isDisplayed.js" and other resources in OSGI environment by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17257
  • [py] Improve Selenium Manager platform/architecture detection by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17271
  • [dotnet] [build] Significantly simplify how test targets execute tests by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17269
  • [dotnet] [build] Simplify how we pack nuget package by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17270
  • [dotnet] Actualize readme how to run tests by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17272
  • [py] Bump python dev dependencies by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17273
  • [dotnet] [test] Start test webserver globally before any tests in Support by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17275
  • [dotnet] [test] Rename namespace for common test project by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17276
  • [dotnet] [test] Normalize namespace for Support tests by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17277
  • [rb] [build] Upgrade bazel rules by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17279
  • [dotnet] [test] Return safari back by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17280
  • [dotnet] [test] Remove/move browser specific test projects by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17281
  • [dotnet] [bidi] Remove high-level network interception by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17288
  • [dotnet] [bidi] Remove enumerable json converter for Input module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17285
  • [java] Fix failing java tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17278
  • [js] Fix failing javascript tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17293
  • [dotnet] [build] Don't skip tests by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17295
  • [dotnet] [bidi] Decouple transport and processing by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17291
  • [rb] fix Ruby tests failing because of alerts in Firefox by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17294
  • [py] Add APIRequestContext to make requests with browser auth/cookie state by @mayank-at-sauce in https://github.com/SeleniumHQ/selenium/pull/17228
  • [dotnet] [bidi] Revise event args by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17304
  • [dotnet] Fix domain lifecycle in CDP adapters by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17305
  • [dotnet] [bidi] Testing infra for custom module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17306
  • [rb] Turn off external caching on portable Ruby by @p0deje in https://github.com/SeleniumHQ/selenium/pull/17307
  • [dotnet] [bidi] Improve json discriminator determination by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17309
  • [dotnet] [bidi] IIdentifiable json converter factory by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17310
  • [dotnet] [bidi] Fix commands cancelling callback by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17315
  • [py] Update dev dependencies and multitool binaries by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17314
  • fix(js): migrate closure_js_binary provider access to modern Starlark API by @diemol in https://github.com/SeleniumHQ/selenium/pull/17317
  • fix(update_cdp): update release fetch URL to include milestone 146 by @diemol in https://github.com/SeleniumHQ/selenium/pull/17318
  • fix(update_cdp): update file paths for ChromeDriver configuration by @diemol in https://github.com/SeleniumHQ/selenium/pull/17319
  • fix(pre-release): simplify dependency update command and ensure cargo… by @diemol in https://github.com/SeleniumHQ/selenium/pull/17320
  • fix(pre-release): update job dependencies and streamline version bump process by @diemol in https://github.com/SeleniumHQ/selenium/pull/17321

New Contributors

  • @BckupMuthu made their first contribution in https://github.com/SeleniumHQ/selenium/pull/16944
  • @seethinajayadileep made their first contribution in https://github.com/SeleniumHQ/selenium/pull/17120
  • @tim-burke-systemware made their first contribution in https://github.com/SeleniumHQ/selenium/pull/17139
  • @jit3pam made their first contribution in https://github.com/SeleniumHQ/selenium/pull/17204
  • @mayank-at-sauce made their first contribution in https://github.com/SeleniumHQ/selenium/pull/17228

Full Changelog: https://github.com/SeleniumHQ/selenium/compare/selenium-4.41.0...selenium-4.42.0

selenium-4.41.0 Breaking risk
Breaking changes
  • [dotnet] Selenium Manager as async (breaking change)
  • [dotnet] Remove unnecessary ICommandServer interface (breaking change)
Full changelog

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 https://github.com/SeleniumHQ/selenium/pull/16945
  • Canonical approach to supporting AI agent directions by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16735
  • [build] Pre-release workflow improvements by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16946
  • [build] Prevent nightly releases during release window by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16948
  • [build] Fix Bazel NuGet push implementation by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16950
  • [build] Release workflow improvements by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16947
  • [build] Fix Bazel JSDocs implementation by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16949
  • [build] Create config files from environment variables for publishing by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16951
  • [js] create task to update dependencies by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16942
  • [build] Java release improvements and build verification tasks by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16952
  • [py] integrate mypy type checking with Bazel by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16958
  • [build] Migrate workflows to use centralized bazel.yml by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16955
  • [dotnet] [bidi] Simplify context aware command options by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16954
  • [build] simplify release.yml: remove draft, build once during publish by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16960
  • [dotnet] [bidi] AOT safe json converter for Input.Origin class by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16962
  • [dotnet] [bidi] AOT safe json converter for OptionalConverter by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16963
  • [dotnet] [bidi] Null guard for event handlers by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16967
  • [java] Improve error message for died grid by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16938
  • [build] combine pre-release dependency updates by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16973
  • [rb] remove stored atoms these get generated by build by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16971
  • [dotnet] [bidi] Unignore some internal tests by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16968
  • [build] run ruff on python files outside py directory by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16957
  • [py] Fix return type hint for alert_is_present by @nemowang2003 in https://github.com/SeleniumHQ/selenium/pull/16975
  • Replace hardcoded bazel-selenium references with dynamic path resolution by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16976
  • No More CrazyFun! by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16972
  • [build] Remove update_gh_pages in favor of CI workflow by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16977
  • [build] Remove legacy rake helpers and unused code by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16978
  • [py] make bazel test target names consistent with other languages by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16969
  • [dotnet] [bidi] Fix namespace for Permissions module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16981
  • [dotnet] [bidi] Hide Broker as internal implementation by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16982
  • [dotnet] [bidi] Refactor BiDi module initialization to pass BiDi explicitly by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16983
  • [build] Add DocFX updater script by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16980
  • [build] add reusable commit-changes.yml workflow by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16965
  • [java] fix JSON parsing of numbers with exponent by @joerg1985 in https://github.com/SeleniumHQ/selenium/pull/16961
  • [build] Skip macOS-only archive rules on unsupported platforms by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16985
  • [build] Split Rakefile into per-language task files by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16979
  • Implement fast bazel target lookup with index caching by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16974
  • [build] Remove git.add() calls from rake tasks by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16994
  • [js] Add eslint binary target for selenium-webdriver by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16992
  • [dotnet] Add bazel rules for dotnet format and paket deps by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16986
  • [dotnet] [bidi] Introduce CancellationToken for async commands by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16990
  • [dotnet] [bidi] Support cancellation of events registration by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16996
  • [build] Separate rust from all: namespace by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16995
  • [build] optimize fetch-depth across workflows by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16966
  • [build] consolidate pre-release workflow by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16997
  • [build] Support per-language patch releases by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16987
  • [build] retrigger CI after auto-format commits by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17000
  • [dotnet] have SE_DEBUG output driver logs to stderr by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16903
  • [dotnet] [bidi] Use System.Threading.Channels dependency for events dispatching by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17004
  • [py] Replace //py:ruff with dedicated ruff-format and ruff-check targets by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16998
  • [build] use bazel to update python requirements by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16930
  • [dotnet] Add linting support with configurable dotnet format by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16999
  • [dotnet][rb][java][js][py] remove disk cleanup, add monitoring by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17001
  • [build] consolidate nightly workflow by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17005
  • [rb] output driver logs by default when debug is enabled by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16901
  • [build] use matrix for nightly releases by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17010
  • [rb] Update lint configuration and fix rubocop offenses by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17008
  • [py] Use lazy imports in webdriver init.py by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16993
  • [py][java][js] SE_DEBUG warns only when overriding user settings by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17009
  • mark wait.until as non-nullable by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17007
  • restore BiDi constructor without timeout parameter by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17014
  • [rust] Fix suppport for webview2 (#15797) by @bonigarcia in https://github.com/SeleniumHQ/selenium/pull/17016
  • [dotnet] Fix generation of inline docs for devtools members by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17017
  • [build] auto merge browser version updates if they pass all checks by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16991
  • [py] Modularize Bazel build with per-module targets by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17012
  • [dotnet] update formatting rules by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17019
  • [grid] Preventing potential deadlock in Distributor by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17022
  • [rb] add missing unit tests by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17025
  • Report exactly which JSON value was incorrect by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17003
  • [build] Add permissions for nightly job in release workflow by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17031
  • [build] Separate format and lint tasks, add per-language format commands by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17020
  • [Java] JSpecify annotations for LoadableComponent , SlowLoadableComponent by @mk868 in https://github.com/SeleniumHQ/selenium/pull/16798
  • [java] parse all JSON numbers the same way by @joerg1985 in https://github.com/SeleniumHQ/selenium/pull/17038
  • [py] Make extensions tests work when not running bazel by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17026
  • [grid] Add session event API for server-side event bus integration by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17015
  • [java] specify nullability in package org.openqa.selenium.bidi.browser by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17036
  • [py][bidi]: add emulation command set_screen_settings_override by @navin772 in https://github.com/SeleniumHQ/selenium/pull/17030
  • [py] Autofix lint errors but still fail by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17042
  • [java][BiDi] implement emulation.setScreenSettingsOverride by @Delta456 in https://github.com/SeleniumHQ/selenium/pull/17028
  • [java] specify nullability in package org.openqa.selenium.bidi.browsingcontext by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17040
  • [py]: enable edge browser tests for bidi by @navin772 in https://github.com/SeleniumHQ/selenium/pull/17032
  • [build] File-level test target indexing for precise affected test detection by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17033
  • [build] add smart targeting and --lint flag to format.sh by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/17035
  • [dotnet] [bidi] SetTouchOverride command in Emulation module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17045
  • [dotnet] [bidi] SetNetworkConditions command in Emulation module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17047
  • [dotnet] [bidi] Adjusted name for Capabilities in new session result by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17048
  • [dotnet] [bidi] Expand SetViewport options with optional UserContexts by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17049
  • [dotnet] [bidi] Change MovePointer X/Y types to double by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17050
  • [dotnet] [bidi] Support UserContexts in AddPreloadScript command options by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17051
  • [dotnet] [bidi] Rename input actions according spec by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17052
  • [java] Fix "secure vs non-secure" error in tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17046
  • [py][build] Bump bazel rules_python and python toolchain versions by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17054
  • [java] Nullability annotations in package org.openqa.selenium.bidi.emulation by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17055
  • [java] specify nullability in package org.openqa.selenium.bidi.module by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17058
  • [java] specify nullability in package org.openqa.selenium.bidi.log by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17059
  • [grid] Revert default standalone config by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17060
  • [java] specify nullability in package org.openqa.selenium.bidi.network by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17061
  • [java] specify nullability in package org.openqa.selenium.bidi.script by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17062
  • [bazel] fix running google formatter with too many files by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17065
  • [java] Nullability in all BiDi packages by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17064
  • [dotnet] Truncate internal log messages by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17063
  • [py] Bump dev dependencies by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17066
  • [java] Remove unneeded protection from BiDi Connection constructor by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/17067
  • [dotnet] Fix test file/class names for consistency by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17068
  • [dotnet] Fix emitting of trace log messages from http client handler by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17069
  • [grid] Dynamic Grid standalone support passing basic auth credential by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17072
  • [dotnet] Stream Selenium Manager output to internal logging by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17024
  • [dotnet] Warn if SM log level is unknown by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17073
  • [dotnet] Correlate low level http requests/responses and log failures by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17074
  • [dotnet] Temporary disable CS1591 warning for BiDi namespace by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17075
  • [dotnet] Fix generated devtools inline docs (amp;) by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17076
  • [dotnet] [bidi] Fully immutable commands and events by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17077
  • [dotnet] [bidi] Refactor CommandInfo and EventInfo to structs by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17080
  • [py] Update dev dependencies to fix vulnerability by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17078
  • [dotnet] Mark network request id as non-nullable by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17082
  • [dotnet] Suppress arrays as attribute arguments is not CLS-compliant by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17083
  • [dotnet] Remove legacy static analyzer suppressions by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17084
  • [dotnet] Nullable value in dictionary for json preparation by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17087
  • [dotnet] [bidi] Add Speculation module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17093
  • [grid] Restore stereotype capabilities merging in RelaySessionFactory by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17097
  • [grid] Support Dynamic Grid in Kubernetes cluster by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17092
  • [build] update for Nightly build by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17101
  • [dotnet] [bidi] Add UserContext in event args by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17100
  • [dotnet] Remove global suppressions from Support project by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17099
  • [dotnet] Implicit global usings by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17094
  • [dotnet] Selenium Manager as async (breaking change) by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17088
  • [dotnet] Remove unnecessary ICommandServer interface (breaking change) by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17103
  • [dotnet] Fix start/quit implementation on incorrect level by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17105
  • [grid] Fix Distributor thread exhaustion in node health-check cycle by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17104
  • [grid] Fix WebSocket connection counter leaks in ProxyNodeWebsockets by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17106
  • [dotnet] Refactor waiting until driver service is initialized by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17107
  • [dotnet] Asynchronously start driver service (breaking change) by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17108
  • [grid] Distributor retry session when RemoteNode executor shutting down by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/17109
  • [dotnet] Stop/Dispose driver service asynchronously by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/17110
  • [py] Add in rules to agents around python 3.10+ by @AutomatedTester in https://github.com/SeleniumHQ/selenium/pull/17102
  • [rb] Update dependencies by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/17111
  • [py] Update test to check it's an integer rather than a value by @AutomatedTester in https://github.com/SeleniumHQ/selenium/pull/17114

New Contributors

  • @nemowang2003 made their first contribution in https://github.com/SeleniumHQ/selenium/pull/16975

Full Changelog: https://github.com/SeleniumHQ/selenium/compare/selenium-4.40.0...selenium-4.41.0

selenium-4.40.0 Breaking risk
Breaking changes
  • Removed deprecated FTP proxy support in Python bindings.
Full changelog

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 https://github.com/SeleniumHQ/selenium/pull/15551
  • [java] Refactor tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16684
  • [ci]: bump cargo lockfile by @navin772 in https://github.com/SeleniumHQ/selenium/pull/16698
  • [java][BiDi] change emulation commands return type to void by @Delta456 in https://github.com/SeleniumHQ/selenium/pull/16699
  • [java] simplify strings processing by @iampopovich in https://github.com/SeleniumHQ/selenium/pull/15309
  • Fix few more flaky ruby tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16695
  • [bazel] Switch to custom closure_js_deps rule by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16571
  • [dotnet] [bidi] Support SetScreenSettingsOverrideAsync method in Emulation module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16704
  • [dotnet] Modernize code patterns in test suites by @RenderMichael in https://github.com/SeleniumHQ/selenium/pull/16701
  • use proper AssertJ asserts that generate a useful error message by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16707
  • fix Java language level in IDEA by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16708
  • [py] Properly verify Selenium Manager exists by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16711
  • fix flaky Ruby test element_spec.rb by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16709
  • [java][BiDi] implement emulation.setScreenOrientationOverride by @Delta456 in https://github.com/SeleniumHQ/selenium/pull/16705
  • [rb] add synchronization and error handling for socket interactions by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16487
  • [rb] mark low level bidi implementation as private api by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16475
  • [rb] ensure driver process is always stopped by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/15635
  • [rb] create user-friendly method for enabling bidi by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/14284
  • [dotnet] [bidi] Added missing Script.RemoteReference LocaclValue type by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16717
  • [dotnet] Standardize IEquatable<T> implementations across types overriding Equals by @RenderMichael in https://github.com/SeleniumHQ/selenium/pull/16665
  • [dotnet] Fix nullability warnings in WebDriver by @RenderMichael in https://github.com/SeleniumHQ/selenium/pull/16662
  • [py] Don't compare object identity in conftest by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16723
  • #16720 avoid failing because of temporary Chrome internal files by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16722
  • [rb] Add force encoding to remove warnings caused by json 3.0 by @aguspe in https://github.com/SeleniumHQ/selenium/pull/16728
  • [py] Remove deprecated FTP proxy support by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16721
  • [py] Bump ruff and mypy versions by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16737
  • Create target directories before copying file by @MohabMohie in https://github.com/SeleniumHQ/selenium/pull/16739
  • [bazel+closure]: Vendor the version of closure library we use by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16742
  • [closure] Fix failing //javascript/atoms:test-* targets by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16749
  • Avoid sleep in tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16713
  • [bazel] Bump rules_closure and google closure libary to latest release by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16755
  • [refactor] call WebDriverException constructor instead of using reflection by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16763
  • [build] Pin Browsers in Bazel by default by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16743
  • [build] build selenium manager for tests by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16736
  • [refactor] replace JUnit assertions by AssertJ by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16765
  • [py] Add LocalWebDriver base class by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16730
  • Fix bug in FileHandler: it always failed on MacOS by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16771
  • [java] add missing bazel artifacts by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16773
  • [bazel+js]: Wrap grid-ui tests with bazel by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16758
  • Add missing build file by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16779
  • [bazel] Flag fixes for the RBE by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16785
  • [bazel+js]: Avoid shadowing directory with test name by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16784
  • [py] Add type hints for WebElement.find_element(s) by @pixelsapphire in https://github.com/SeleniumHQ/selenium/pull/16772
  • [build] add explicit permissions to github workflows by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16774
  • [dotnet] Hide driver service window by default by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16782
  • [rb] Fix steep issues by @aguspe in https://github.com/SeleniumHQ/selenium/pull/16752
  • [py][build]: consolidate Python CI tests by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16766
  • [dotnet] [bidi] Fix context aware event handlers by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16787
  • [java] #16753 workaround for JDK bug JDK-8228970 by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16793
  • [java][BiDi] implement emulation.setNetworkConditions by @Delta456 in https://github.com/SeleniumHQ/selenium/pull/16794
  • [java] [refactor] replace most of Guava collections by Java built-in collections by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16776
  • [build] fix issue trying to guard actions run on forks by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16800
  • [py] Add/fix type hints for find_element/find_elements by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16786
  • [ci] Use macos-latest instead of macos-13 in Rust workflow by @bonigarcia in https://github.com/SeleniumHQ/selenium/pull/16803
  • [py][bidi]: improve tests to use local no-proxy server by @navin772 in https://github.com/SeleniumHQ/selenium/pull/16747
  • [py][bidi]: add emulation command set_network_conditions by @navin772 in https://github.com/SeleniumHQ/selenium/pull/16702
  • [dotnet][java][py][rb][rust] Only use External Cache for GitHub Actions by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16788
  • [py] Add new ruff lint rules, fix violations and type annotations by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16789
  • [java] Be more tolerant to remote responses by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16797
  • [py] pin python versions to specific patches by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16795
  • [java] Fix asserts for maps and sets by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16808
  • [js] fix JS tests on RBE by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16777
  • [py] Remove deprecated FirefoxBinary class by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16811
  • [build] limit what check job pulls in by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16815
  • [rust] fix support for Edge beta versions on Windows by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16806
  • [py] Bump versions and remove unnecessary dev/test dependencies by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16820
  • remove docker deploy code by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16822
  • [py] Fix type annotations, make docstrings consistent, centralize dependencies by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16821
  • [java] several packages marks jspecify nullmarked by @iampopovich in https://github.com/SeleniumHQ/selenium/pull/16802
  • Update copyright to 2026 by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16830
  • [rust] ignore force download for Safari by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16825
  • [dotnet] [bidi] Properly return shared buffer when disposing websocket by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16804
  • [java] fix NPE in FirefoxOptions by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16833
  • [py] Fix remaining mypy errors and enable CI for type checking by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16837
  • [java] Mark obsolete variables deprecated in DriverCommand and W3CHttpCommandCodec by @iampopovich in https://github.com/SeleniumHQ/selenium/pull/16013
  • [java] remove usages of Guava collections (sets and maps) by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16835
  • [java] simplify several statements with isEmpty function call by @iampopovich in https://github.com/SeleniumHQ/selenium/pull/16836
  • [java] JSpecify annotations for org.openqa.selenium.json by @mk868 in https://github.com/SeleniumHQ/selenium/pull/16799
  • [java][rb][py][dotnet][js] use SE_DEBUG to enable debugging by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16816
  • [java] Allow downloading files from old Grid server by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16839
  • [build] fix lint problems automatically by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16780
  • [java] Speed up tests, improve test logging and build script by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16843
  • [rb] ensure the grid is properly restarted in tests when there is a problem by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16842
  • [build] get chrome-driver tests passing on RBE by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16807
  • [Java] add lint job by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16846
  • [java] rework downloading files from Grid by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16844
  • [java] configurable timeout for BiDi commands by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16796
  • [java] Unify error message format for all Expected Conditions & add tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16831
  • [java][py][rb][js][dotnet] rerun failing tests when requested by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16840
  • [build] remove ruby tests from skipped tests files by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16859
  • [node] Add asMap function to Header class and corresponding tests by @iampopovich in https://github.com/SeleniumHQ/selenium/pull/16832
  • [java] Fix flaky tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16862
  • [java] fixes for running on windows by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16852
  • [js]: Get the chrome-driver tests passing by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16856
  • [js] Migrate javascript/atoms tests from Closure to QUnit by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16855
  • [rb] should not need long client timeout in tests by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16847
  • [py] Reduce traceback output on test failures by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16854
  • [py] Bump minimum dependency versions because of CVE by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16867
  • [js] Delete tests and files which are not run any more by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16871
  • Migrate remaining Google Closure jsunit tests to qunit by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16870
  • [py] improve how tests are run against the grid server by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16851
  • Java chrome beta by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16860
  • add readable toString() to org.openqa.selenium.remote.Browser by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16873
  • [java] restore ClientConfig constructor used by Appium (for backward compatibility) by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16874
  • Remove outdated CodeTour files by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16872
  • [dotnet] get tests working on windows with bazel by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16853
  • [py] Add type annotations to bidi network module by @mzyndul in https://github.com/SeleniumHQ/selenium/pull/16875
  • [dotnet] Stabilize ShouldTimeoutIfAPageTakesTooLongToRefresh test by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16880
  • [dotnet] [bidi] Context aware network collector by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16866
  • [dotnet] [bidi] Rent and return buffer to shared pool per remote message by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16838
  • [build][rb] remove unnecessary log output from windows runs by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16876
  • [build] save bazel cache to GitHub only from trunk by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16890
  • [py] Add type annotations by @mzyndul in https://github.com/SeleniumHQ/selenium/pull/16883
  • [rb] update ruby versions by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16891
  • [java] update what java test targets are generated by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16886
  • [java] update browser tests to match test suite conventions by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16888
  • [rb][py][dotnet][java][js] move logic for reruns and collecting logs into separate scripts by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16879
  • [java] deprecate unused logging implementation by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16889
  • [py] rerun tests with debugging by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16892
  • create FakeWebDriver only if "browser=selenium-test" by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16898
  • [java] update how unit tests are declared and run by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16887
  • [dotnet] [bidi] Allow consumer to combine input actions via identifier by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16885
  • [build][rb][py] use arm binaries for mac by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16897
  • [rb] wait for grid to actually be ready when starting server by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16896
  • [java] rerun tests with debugging by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16893
  • [rust] only collect stats on stamped builds by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16826
  • [rb] Set Ruby tests to rerun when failing by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16858
  • [rb] check driver status endpoint rather than socket connection by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16877
  • [java] remove Apache Commons dependency by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16865
  • [py] have SE_DEBUG output driver logs as well by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16902
  • [build] rerun the RBE tests with debugging enabled by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16905
  • [java] SE_DEBUG dumps all log output to stderr by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16900
  • [py] Update development dependencies by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16908
  • [java] Use ClientConfig provided by user instead of the default one by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16882
  • [rust] Replace fs::rename by file::move_file for Grid artifacts by @bonigarcia in https://github.com/SeleniumHQ/selenium/pull/16911
  • [dotnet] [bidi] Expose New session command by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16907
  • [build] automate the new java release publish by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16509
  • [py] Find grid in tests if not using bazel by @cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16912
  • build python docs with bazel by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16919
  • [build] generate dotnet docs with bazel by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16921
  • [bazel] Prevent duplicate directory warnings from python builds by @shs96c in https://github.com/SeleniumHQ/selenium/pull/16923
  • [grid] Improve Node handling concurrent sessions creation by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/16913
  • [java] Change BiDi "internalId" type from Long to String by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16918
  • [build] update ruby gems with bazel by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16924
  • build js docs with bazel by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16922
  • [rb] add a //rb:steep run target by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16925
  • [py]: use is_url_connectable for driver status check by @navin772 in https://github.com/SeleniumHQ/selenium/pull/16881
  • [java] create fewer objects while parsing JSON by @joerg1985 in https://github.com/SeleniumHQ/selenium/pull/16926
  • [build] implement bazel rule for pushing nuget packages by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16920
  • [build] release selenium via workflow by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16937
  • [java] preserve original file's modification time when uploading to Grid by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16935
  • [java] fix logging in Selenium own tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16933
  • [java] Stabilize flaky tests related to mouse movement by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16906
  • [java] Automatically save screenshots & page sources for failed tests by @asolntsev in https://github.com/SeleniumHQ/selenium/pull/16904
  • [grid] Improve race conditions in Grid session distribution by @VietND96 in https://github.com/SeleniumHQ/selenium/pull/16939
  • [dotnet] [bidi] FileDialogOpened event in Input module by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16934
  • [dotnet] [bidi] Expose Input module in root BiDi class by @nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16940
  • [build] use rulesets to restrict and unrestrict trunk during release window by @titusfortner in https://github.com/SeleniumHQ/selenium/pull/16941

New Contributors

  • @pixelsapphire made their first contribution in https://github.com/SeleniumHQ/selenium/pull/16772
  • @mzyndul made their first contribution in https://github.com/SeleniumHQ/selenium/pull/16875

Full Changelog: https://github.com/SeleniumHQ/selenium/compare/selenium-4.39.0...selenium-4.40.0

Beta — feedback welcome: [email protected]