| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| selenium-server-4.41.0.zip | 2026-02-20 | 107.9 MB | |
| selenium-server-4.41.0.jar | 2026-02-20 | 44.2 MB | |
| selenium-java-4.41.0.zip | 2026-02-20 | 37.2 MB | |
| selenium-dotnet-strongnamed-4.41.0.zip | 2026-02-20 | 20.9 MB | |
| selenium-dotnet-4.41.0.zip | 2026-02-20 | 20.9 MB | |
| README.md | 2026-02-20 | 18.9 kB | |
| Selenium 4.41.0 source code.tar.gz | 2026-02-20 | 43.6 MB | |
| Selenium 4.41.0 source code.zip | 2026-02-20 | 47.3 MB | |
| Totals: 8 Items | 322.0 MB | 94 | |
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/16975Full Changelog: https://github.com/SeleniumHQ/selenium/compare/selenium-4.40.0...selenium-4.41.0