Releases: SeleniumHQ/selenium
Releases Β· SeleniumHQ/selenium
Nightly
Code Refactoring
- Improve string handling and encoding in ModuleGenerator and AbstractHttpCommandCodec #15309 (Alex Popov)
Commits
- b1d3522: Update mirror info (Sun Dec 7 00:26:48 UTC 2025) (Selenium CI Bot)
- 534566c: [dotnet] Modernize
EnvironmentManager, standardize assembly teardown (#15551) (Michael Render) #15551 - c7f70e7: Update mirror info (Sun Dec 7 12:08:44 UTC 2025) (Selenium CI Bot)
- a855017: use the right AssertJ class
Assertionsinstead ofAssertionsForClassTypes(Andrei Solntsev) #16684 - 794820d: use the right AssertJ method
assertThatThrownByinstead of error-prone construct "try/fail/catch(expected)". (Andrei Solntsev) #16684 - ec555e9: use better AssertJ assertion for collection size (Andrei Solntsev) #16684
- 61f251e: use better AssertJ assertion for Optionals and AtomicIntegers (Andrei Solntsev) #16684
- 28f0f1d: [ci]: bump cargo lockfile (#16698) (Navin Chandra) #16698
- cfbeed8: [java][BiDi] change emulation commands return type to void (Delta456) #16699
Selenium 4.39.0
Detailed Changelogs by Component
Java Β Β Β | Β Β Β
Python Β Β Β | Β Β Β
DotNet Β Β Β | Β Β Β
Ruby Β Β Β | Β Β Β
JavaScript
What's Changed
Click to see all the changes included in this release
- [atoms] fix text node children are always considered as displayed #16284 by @joerg1985 in #16329
- [grid] Enhance UI with theme integration and improved status indicators by @VietND96 in #16512
- [py][bidi]: add emulation command -
set_locale_overrideby @navin772 in #16504 - [py][bidi]: add emulation command
set_scripting_enabledby @navin772 in #16513 - [py] Update docstrings to google pydoc format by @iampopovich in #16511
- [java][BiDi] implement
browsingContext.downloadEndevent by @Delta456 in #16347 - Fix typo and minor formatting changes in README.md by @cgoldberg in #16523
- [py] Update docstrings (remove reST leftovers and resolve D200) by @iampopovich in #16525
- [py] Fix docstring formatting and apply ruff linting rules by @cgoldberg in #16527
- [py] Fix Ruff D417 warnings in docstrings by @iampopovich in #16535
- [py] Fix ruff D415 warnings in docstrings by @cgoldberg in #16536
- [py][bidi]: add
set_screen_orientation_overridecommand in Emulation by @navin772 in #16522 - [py] Fix D205 ruff warnings for docstrings and add type hints by @iampopovich in #16537
- [py][bidi]: add
set_download_behaviorcommand by @navin772 in #16556 - [py] Bump pytest and dev dependencies by @cgoldberg in #16572
- [bazel] Move
rules_rusttobzlmodby @shs96c in #16566 - [ci] Make a PR for updating mirror file instead of pushing directly to trunk by @bonigarcia in #16579
- [ci] Update mirror info (2025-11-11T15:26:46Z) by @github-actions[bot] in #16578
- [ci] Revert latest changes related to the mirror workflow by @bonigarcia in #16580
- [java]: refactor request interception tests and handle CORS by @navin772 in #16585
- [py][bidi]: enable download event tests for firefox by @navin772 in #16587
- [py] Fix more type annotations by @iampopovich in #16551
- [java][BiDi] implement
emulation.setTimezoneOverrideby @Delta456 in #16530 - [grid] Minimum Docker API 1.44 for Docker Engine v29+ in Dynamic Grid by @VietND96 in #16591
- Show file modification time by @asolntsev in #16589
- [py][bidi]: add emulation command
set_user_agent_overrideby @navin772 in #16595 - [grid] Improve Docker client for Dynamic Grid by @VietND96 in #16596
- [py]: reuse driver in case of bidi tests by @navin772 in #16597
- [grid] Improve browser container labels and naming in Dynamic Grid by @VietND96 in #16599
- [build] Upgrade rules_dotnet to 0.20.5 by @nvborisenko in #16592
- [dotnet] [bidi] Simplify namespace for communications by @nvborisenko in #16602
- [py] Improve type hints with union syntax and native types by @cgoldberg in #16590
- [py] Use double quotes in generate.py by @Delta456 in #16607
- [ci] Use pagination in mirror workflow to get all Selenium releases by @bonigarcia in #16605
- [dotnet] Generate atoms statically by @nvborisenko in #16608
- [nodejs] Update dev dependencies to fix vulnerabilities by @cgoldberg in #16610
- [java][BiDi] emulation: allow passing null to GeolocationOverride by @Delta456 in #16594
- [grid] Update container label
compose.oneoffin Dynamic Grid by @VietND96 in #16613 - [grid] Dynamic Grid group dynamic containers in compose stack by @VietND96 in #16620
- [py] Use daemon threads for WebSocket connections by @cgoldberg in #16298
- [dotnet] Add syntax highlighting for JavaScript string methods by @RenderMichael in #16616
- [dotnet] Unwrap element wrapper recursively by @RenderMichael in #15362
- [dotnet] Simplify nuget package reference in Bazel by @RenderMichael in #16630
- [ci]: cancel previous CI run in case of new commit/push by @navin772 in #16624
- [ci]: remove concurrency checks in child workflows by @navin772 in #16633
- [dotnet] [bidi] Fix events subscription possibilities by @nvborisenko in #16603
- [dotnet] Pack
net462target framework by @nvborisenko in #16564 - [py][bidi] Allow resetting viewport by @cgoldberg in #16623
- [py] Use f-string in generate.py by @cgoldberg in #16641
- [java][BiDi] implement
emulation.setScriptingEnabledby @Delta456 in #16631 - [dotnet] Remove Newtonsoft.Json test-only dependency by @RenderMichael in #16639
- [dotnet] Update
paketbuild tool to 9.0.2 by @RenderMichael in #16637 - [dotnet] Update lock dependencies in bazel world by @nvborisenko in #16642
- [dotnet] [bidi] Possibility to reset viewport by @nvborisenko in #16601
- [java] Avoid logging debug logs with INFO level (either in RUN or DEBUG mode) by @asolntsev in #16584
- [java] Add JSpecify nullable annotations to exception classes by @iampopovich in #16026
- annotate with
@NullMarkedthe whole packageorg.openqa.selenium.netby @asolntsev in #16494 - [java][bidi]: add BiDi method
BrowsingContext.setViewport(null, null)to reset the mobile emulation mode by @asolntsev in #16524 - [java] Replace Maven dependency references with artifact() for org.jspecify.jspecify by @iampopovich in #16635
- 16612 download large files by @asolntsev in #16627
- #16573 unwrap double-wrapped webdriver by @asolntsev in #16575
- [dotnet] Implement third-party Permissions module by @RenderMichael in #16414
- [dotnet] [bidi] JsonSerializerContext instance per module by @nvborisenko in #16649
- [dotnet] [bidi] Immediately start to listen to incoming remote messages by @nvborisenko in #16651
- [dotnet] [bidi] Dedicated json context for all modules by @nvborisenko in #16652
- [dotnet] Move internal compiler services to Properties by @nvborisenko in #16653
- [dotnet] [bidi] Rent buffer for receiving bytes in WebSocket by @nvborisenko in #16650
- [dotnet] Migrate solution file to new
.slnxformat by @RenderMichael in #16638 - [dotnet] [bidi] Ignore non-serializable extension properties in BrowsingContext by @nvborisenko in #16654
- [dotnet] [bidi] Cache modules in the root BiDi by @...