Skip to content

selenium

API Development

A framework for automating web browsers via the W3C WebDriver specification

Java Latest selenium-4.46.0 · 16d ago Security brief →

Features

  • Provides a language‑neutral coding interface (WebDriver) compatible with major browsers
  • Supports cross‑platform development through Bazel build system
  • Enables browser automation for testing, web scraping, and UI interaction

Recent releases

View all 7 releases →
Review required
selenium-4.46.0 Breaking risk
Auth RCE / SSRF

JSON parsing + Bidi split + Safari routing

Upgrade now
selenium-4.45.0 Breaking risk
Dependencies

Java logging removal; .NET upgrades; Python BiDi enhancements

Review required
selenium-4.44.0 Breaking risk
Breaking upgrade Auth

UnhandledPromptBehavior string/map support + strong signing

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

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
34,297
Forks
8,695
Languages
Java C# C++

Open source alternatives

Beta — feedback welcome: [email protected]