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