Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 4.21.0 #13948

Merged
merged 5 commits into from
May 16, 2024
Merged

Release 4.21.0 #13948

merged 5 commits into from
May 16, 2024

Conversation

diemol
Copy link
Member

@diemol diemol commented May 16, 2024

User description

Thanks for contributing to Selenium!
A PR well described will help maintainers to quickly review and merge it

Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, help reviewers by making them as simple and short as possible.

Description

Motivation and Context

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

PR Type

enhancement, bug_fix


Description

  • Updated Java and .NET WebDriver DevTools classes for Chrome version 125.
  • Removed deprecated ownership parameter from Node.js BrowsingContext methods.
  • Added new protocol definitions for Chrome DevTools version 125 in PDL format.
  • Updated changelog and authors list to reflect new contributions and changes.

Changes walkthrough 📝

Relevant files
Enhancement
14 files
v125Target.java
Update Java DevTools v125Target for Chrome 125                     

java/src/org/openqa/selenium/devtools/v125/v125Target.java

  • Updated package and imports from v122 to v125
  • Adjusted method implementations to align with v125 specifications
  • +12/-12 
    v125Network.java
    Refactor Java DevTools v125Network for Chrome 125               

    java/src/org/openqa/selenium/devtools/v125/v125Network.java

  • Updated package and imports from v122 to v125
  • Modified network command implementations for v125
  • +10/-10 
    v125Events.java
    Update Java DevTools v125Events for new event handling in Chrome 125

    java/src/org/openqa/selenium/devtools/v125/v125Events.java

  • Updated package and imports from v122 to v125
  • Adjusted event handling to comply with v125
  • +9/-9     
    v125Domains.java
    Refactor Java DevTools v125Domains for Chrome 125               

    java/src/org/openqa/selenium/devtools/v125/v125Domains.java

  • Updated package and imports from v122 to v125
  • Refactored domain classes to align with v125
  • +13/-13 
    v125Javascript.java
    Update Java DevTools v125Javascript for Chrome 125             

    java/src/org/openqa/selenium/devtools/v125/v125Javascript.java

  • Updated package and imports from v122 to v125
  • Adjusted JavaScript handling for v125
  • +7/-7     
    v125Log.java
    Update Java DevTools v125Log for Chrome 125                           

    java/src/org/openqa/selenium/devtools/v125/v125Log.java

  • Updated package and imports from v122 to v125
  • Modified log handling to align with v125
  • +5/-5     
    v125CdpInfo.java
    Update Java DevTools v125CdpInfo for Chrome 125                   

    java/src/org/openqa/selenium/devtools/v125/v125CdpInfo.java

  • Updated package from v122 to v125
  • Adjusted CDP information for v125
  • +4/-4     
    V125Domains.cs
    Update .NET WebDriver DevTools V125Domains for Chrome 125

    dotnet/src/webdriver/DevTools/v125/V125Domains.cs

  • Updated namespace and class names from V122Domains to V125Domains
  • Adjusted domain implementation for Chrome 125
  • +11/-11 
    V125Network.cs
    Update .NET WebDriver DevTools V125Network for Chrome 125

    dotnet/src/webdriver/DevTools/v125/V125Network.cs

  • Updated namespace and class names from V122Network to V125Network
  • Refactored network functionality for Chrome 125
  • +12/-12 
    V125JavaScript.cs
    Update .NET WebDriver DevTools V125JavaScript for Chrome 125

    dotnet/src/webdriver/DevTools/v125/V125JavaScript.cs

  • Updated namespace and class names from V122JavaScript to
    V125JavaScript
  • Adjusted JavaScript handling for Chrome 125
  • +8/-8     
    V125Target.cs
    Update .NET WebDriver DevTools V125Target for Chrome 125 

    dotnet/src/webdriver/DevTools/v125/V125Target.cs

  • Updated namespace and class names from V122Target to V125Target
  • Modified target handling to align with Chrome 125
  • +7/-7     
    V125Log.cs
    Update .NET WebDriver DevTools V125Log for Chrome 125       

    dotnet/src/webdriver/DevTools/v125/V125Log.cs

  • Updated namespace and class names from V122Log to V125Log
  • Adjusted log handling for Chrome 125
  • +7/-7     
    browsingContext.js
    Remove ownership parameter from BrowsingContext methods in Node.js

    javascript/node/selenium-webdriver/bidi/browsingContext.js

  • Removed the ownership parameter from locateNodes and locateNode
    methods
  • +2/-17   
    js_protocol.pdl
    Add new protocol definitions for Chrome DevTools v125       

    common/devtools/chromium/v125/js_protocol.pdl

    • Added new protocol definitions for Chrome DevTools version 125
    +1807/-1
    Documentation
    1 files
    CHANGELOG
    Update Java CHANGELOG for version 4.21.0                                 

    java/CHANGELOG

  • Added changelog entries for version 4.21.0 detailing updates and fixes

  • +20/-0   

    💡 PR-Agent usage:
    Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    selenium-ci and others added 4 commits May 15, 2024 16:27
    * Update pinned browser versions
    
    * Update supported versions for Chrome DevTools
    
    * Update selenium manager version
    
    * Update authors file
    
    * FIX CHANGELOGS BEFORE MERGING!
    
    Update versions and change logs to release Selenium 4.21.0
    
    * [create-pull-request] automated change
    
    * [js] Running format script
    
    * [java] Enabling some Chrome tests work with BiDi
    
    * [dotnet] Using CDP 124 in the meantime
    
    * [dotnet] Excluding Edge until CDP 125 is available for it
    
    * [java] Enabling bidi tests for Chrome
    
    * [rb] Enabling bidi tests
    
    * [bidi] Remove root ownership parameter due to update in BiDi spec
    
    * Updating changelogs
    
    ---------
    
    Co-authored-by: Selenium CI Bot <selenium-ci@users.noreply.github.com>
    Co-authored-by: Diego Molina <diemol@users.noreply.github.com>
    Co-authored-by: Diego Molina <diemol@gmail.com>
    Co-authored-by: Puja Jagani <puja.jagani93@gmail.com>
    Copy link
    Contributor

    PR Description updated to latest commit (59a6366)

    Copy link
    Contributor

    PR Review 🔍

    ⏱️ Estimated effort to review [1-5]

    4, because the PR involves multiple changes across various files and languages, including updates to dependencies, addition of new features, and removal of deprecated features. The complexity is increased due to the need to ensure compatibility and correct functionality across different components.

    🧪 Relevant tests

    No

    ⚡ Possible issues

    Possible Bug: The PR introduces changes to version numbers and dependencies which might not be fully compatible or could lead to unexpected behaviors if not properly tested.

    Performance Concern: Extensive changes in core functionalities, such as updates to the DevTools protocol versions, could impact performance if not optimized and tested thoroughly.

    🔒 Security concerns

    No

    Copy link
    Contributor

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Security
    Verify and ensure the correctness of SHA256 checksums for software dependencies

    Verify the new SHA256 checksums for the updated URLs to ensure they are correct and have
    not been tampered with. This is crucial for maintaining the integrity and security of the
    software dependencies.

    common/repositories.bzl [15]

    -sha256 = "f029b9dd18e1955fa1391cfaac2fdbe338343ddff59eeb1f4b2f509cc01b4584",
    +sha256 = "<verified_correct_sha256_checksum>",
     
    Suggestion importance[1-10]: 10

    Why: This is a crucial security suggestion ensuring the integrity of the software dependencies by verifying SHA256 checksums, especially when URLs are updated.

    10
    Possible issue
    Ensure proper initialization of v125Target with required dependencies

    Ensure that the v125Target constructor is properly initialized with necessary parameters
    or resources.

    java/src/org/openqa/selenium/devtools/v125/v125Domains.java [43]

    -target = new v125Target();
    +target = new v125Target(devtools);
     
    Suggestion importance[1-10]: 8

    Why: Ensuring that v125Target is properly initialized with necessary parameters is crucial for the correct functioning of the class. This addresses a potential major issue in resource initialization.

    8
    Add null checks to constructor parameters to ensure stability

    Add null checks in the constructor for network and fetch parameters to prevent null
    reference exceptions when methods on these objects are called.

    dotnet/src/webdriver/DevTools/v125/V125Network.cs [41-44]

     public V125Network(NetworkAdapter network, FetchAdapter fetch)
     {
    -    this.network = network;
    -    this.fetch = fetch;
    +    this.network = network ?? throw new ArgumentNullException(nameof(network));
    +    this.fetch = fetch ?? throw new ArgumentNullException(nameof(fetch));
     }
     
    Suggestion importance[1-10]: 8

    Why: Adding null checks in the constructor for network and fetch is a valid suggestion to prevent null reference exceptions, enhancing the robustness of the code.

    8
    Review org.redisson:redisson update for potential breaking changes

    Review the necessity of updating org.redisson:redisson:3.30.0 as major version updates
    might introduce breaking changes that could affect the existing functionalities.

    MODULE.bazel [207]

    -"org.redisson:redisson:3.30.0"
    +"org.redisson:redisson:3.30.0"  # Review for potential breaking changes
     
    Suggestion importance[1-10]: 3

    Why: The suggestion is generally good practice when updating major versions, but it lacks context on whether the version update actually introduces breaking changes, making it a precautionary suggestion rather than a critical one.

    3
    Enhancement
    Improve error handling by using a specific exception type in the lambda function

    Consider using a more specific exception type in the lambda function for better error
    handling and debugging.

    java/src/org/openqa/selenium/devtools/v125/v125Target.java [45]

    -id -> new org.openqa.selenium.devtools.v125.target.model.TargetID(id.toString())
    +id -> {
    +  try {
    +    return new org.openqa.selenium.devtools.v125.target.model.TargetID(id.toString());
    +  } catch (IllegalArgumentException e) {
    +    throw new CustomException("Invalid TargetID format", e);
    +  }
    +}
     
    Suggestion importance[1-10]: 7

    Why: Adding specific exception handling in the lambda function can significantly improve the robustness and debuggability of the code. This is a good enhancement, especially for error-prone operations.

    7
    Improve the clarity and detail of the test description to better reflect its purpose

    Ensure that the test description accurately reflects the test's purpose and conditions.
    The description 'does not close BiDi session if at least one window is opened' should be
    clear and possibly include more details if the test's logic is complex or not immediately
    obvious from the description.

    rb/spec/integration/selenium/webdriver/bidi_spec.rb [64]

    -it 'does not close BiDi session if at least one window is opened',
    +it 'ensures BiDi session remains open if at least one browser window is still open',
     
    Suggestion importance[1-10]: 3

    Why: The suggestion to enhance the test description is valid but not critical. The existing description is adequate, though the suggested improvement could help clarify the test's intent.

    3
    Best practice
    Use ConfigureAwait(false) to avoid capturing the synchronization context

    Use ConfigureAwait(false) on all awaited operations within ContinueWithAuth to avoid
    deadlocks and to not capture the synchronization context unnecessarily.

    dotnet/src/webdriver/DevTools/v125/V125Network.cs [216-224]

     await fetch.ContinueWithAuth(new ContinueWithAuthCommandSettings()
     {
         RequestId = requestId,
         AuthChallengeResponse = new V125.Fetch.AuthChallengeResponse()
         {
             Response = V125.Fetch.AuthChallengeResponseResponseValues.ProvideCredentials,
             Username = userName,
             Password = password
         }
    -});
    +}).ConfigureAwait(false);
     
    Suggestion importance[1-10]: 7

    Why: The suggestion to use ConfigureAwait(false) on all awaited operations within ContinueWithAuth is correct and follows best practices for asynchronous programming in C#, helping to avoid potential deadlocks in non-UI thread contexts.

    7
    Replace a magic value with a constant for clarity and ease of updates

    Use a constant for the 'flatten' parameter to improve code readability and
    maintainability.

    java/src/org/openqa/selenium/devtools/v125/v125Network.java [87]

    -"flatten", true
    +private static final boolean FLATTEN = true;
    +...
    +"flatten", FLATTEN
     
    Suggestion importance[1-10]: 6

    Why: Using a constant for the 'flatten' parameter enhances code readability and maintainability. It's a good practice, though not critical.

    6
    Use detailed semantic versioning for clarity and better release management

    Update the version string format to include a more detailed semantic versioning,
    especially if this is a stable release. Consider using a format like '4.21.0-stable' to
    differentiate from development or nightly builds.

    py/selenium/webdriver/init.py [47]

    -__version__ = "4.21.0"
    +__version__ = "4.21.0-stable"
     
    Suggestion importance[1-10]: 2

    Why: The suggestion to use '4.21.0-stable' instead of '4.21.0' is a minor enhancement and not necessary unless there is a specific need to distinguish between stable and other types of builds in this context. The PR seems to standardize versioning across multiple files without specifying build types.

    2
    Possible bug
    Ensure locator parameter is correctly typed to prevent runtime errors

    Add validation to check if locator is an instance of Locator in the locateNodes method to
    ensure type safety and clearer error handling.

    javascript/node/selenium-webdriver/bidi/browsingContext.js [512-517]

     async locateNodes(
       locator,
       maxNodeCount = undefined,
       sandbox = undefined,
       serializationOptions = undefined,
       startNodes = undefined,
     ) {
    +  if (!(locator instanceof Locator)) {
    +    throw new Error('locator must be an instance of Locator');
    +  }
       ...
     }
     
    Suggestion importance[1-10]: 7

    Why: Adding a type check for the locator parameter in the locateNodes method is a good practice to ensure that the method is called with the correct type, preventing runtime errors and improving code reliability.

    7
    Performance
    Optimize lambda expression to method reference for cleaner and more efficient code

    Use a method reference instead of a lambda for better performance and readability when
    applying a function.

    java/src/org/openqa/selenium/devtools/v125/v125Events.java [89-90]

    -input -> {
    -  org.openqa.selenium.devtools.v125.target.model.SessionID id = mapper.apply(input);
    -  return new SessionID(id.toString());
    -}
    +mapper.andThen(id -> new SessionID(id.toString()))::apply
     
    Suggestion importance[1-10]: 5

    Why: Using method references can indeed improve performance and readability. However, the impact might be minimal, making this a moderate improvement.

    5
    Compatibility
    Verify compatibility of org.mockito:mockito-core with other testing frameworks

    Ensure that the newly added org.mockito:mockito-core:5.12.0 version is compatible with
    other testing frameworks used in the project to avoid any runtime issues.

    MODULE.bazel [206]

    -"org.mockito:mockito-core:5.12.0"
    +"org.mockito:mockito-core:5.12.0"  # Ensure compatibility with other testing frameworks
     
    Suggestion importance[1-10]: 3

    Why: The suggestion is valid in terms of ensuring compatibility, but it lacks specific details on incompatibilities or issues with the version update, making it a minor improvement suggestion.

    3

    Copy link
    Contributor

    qodo-merge-pro bot commented May 16, 2024

    CI Failure Feedback 🧐

    (Checks updated until commit 4a6d623)

    Action: Ruby / Remote Tests (safari, macos) / Remote Tests (safari, macos)

    Failed stage: Run Bazel [❌]

    Failed test name: Selenium::WebDriver::Window can minimize the window

    Failure summary:

    The action failed due to a test failure in the
    //rb/spec/integration/selenium/webdriver:window-safari-remote test suite. Specifically, the test
    Selenium::WebDriver::Window can minimize the window failed repeatedly across multiple attempts. The
    failure was caused by a Selenium::WebDriver::Error::TimeoutError, indicating that the expected
    condition to verify if the document was hidden did not occur within the specified timeout of 10
    seconds. This suggests either a performance issue or an incorrect expectation in the test scenario.

    Relevant error logs:
    1:  ##[group]Operating System
    2:  macOS
    ...
    
    754:  �[1mexternal/protobuf~/src/google/protobuf/generated_message_tctable_lite.cc:347:14: �[0m�[0;1;35mwarning: �[0m�[1munused function 'Offset' [-Wunused-function]�[0m
    755:  inline void* Offset(void* base, uint32_t offset) {
    756:  �[0;1;32m             ^
    757:  �[0m1 warning generated.
    758:  �[32mINFO: �[0mFrom Linking external/protobuf~/libprotobuf_lite.a [for tool]:
    759:  /Applications/Xcode_15.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: bazel-out/darwin_x86_64-opt-exec-ST-13d3ddad9198/bin/external/protobuf~/_objs/protobuf_lite/io_win32.o has no symbols
    760:  �[32m[1,764 / 3,075]�[0m Executing genrule //common/devtools/chromium/v125:browser_protocol; 2s disk-cache, darwin-sandbox ... (4 actions, 3 running)
    761:  �[32mINFO: �[0mFrom Linking external/protobuf~/libprotobuf.a [for tool]:
    762:  /Applications/Xcode_15.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: file: bazel-out/darwin_x86_64-opt-exec-ST-13d3ddad9198/bin/external/protobuf~/_objs/protobuf/error_listener.o has no symbols
    ...
    
    908:  �[32m[2,916 / 3,075]�[0m MergeJars java/src/org/openqa/selenium/manager/manager-project.jar; 0s disk-cache, darwin-sandbox ... (2 actions running)
    909:  �[32m[2,921 / 3,075]�[0m MergeJars java/src/org/openqa/selenium/manager/manager-project.jar; 1s disk-cache, darwin-sandbox ... (4 actions running)
    910:  �[32m[2,937 / 3,075]�[0m MergeJars java/src/org/openqa/selenium/manager/manager-project.jar; 2s disk-cache, darwin-sandbox ... (4 actions running)
    911:  �[32m[2,944 / 3,075]�[0m Action java/src/org/openqa/selenium/manager/manager-module-module-info.jar; 0s disk-cache, darwin-sandbox
    912:  �[32m[2,945 / 3,075]�[0m Action java/src/org/openqa/selenium/manager/libmanager-module.jar; 0s disk-cache, darwin-sandbox
    913:  �[32m[2,946 / 3,075]�[0m [Prepa] Extracting interface for jar bazel-out/darwin_x86_64-fastbuild/bin/java/src/org/openqa/selenium/manager/libmanager-module.jar
    914:  �[32m[2,956 / 3,075]�[0m Building java/src/org/openqa/selenium/remote/libapi-class.jar (66 source files); 1s disk-cache, multiplex-worker
    915:  �[32mINFO: �[0mFrom Building java/src/org/openqa/selenium/remote/libapi-class.jar (66 source files):
    916:  java/src/org/openqa/selenium/remote/ErrorHandler.java:46: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    917:  private final ErrorCodes errorCodes;
    918:  ^
    919:  java/src/org/openqa/selenium/remote/ErrorHandler.java:60: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    920:  this.errorCodes = new ErrorCodes();
    921:  ^
    922:  java/src/org/openqa/selenium/remote/ErrorHandler.java:68: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    923:  public ErrorHandler(ErrorCodes codes, boolean includeServerErrors) {
    924:  ^
    925:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    926:  ErrorCodes errorCodes = new ErrorCodes();
    927:  ^
    928:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    929:  ErrorCodes errorCodes = new ErrorCodes();
    930:  ^
    931:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:181: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    932:  response.setStatus(ErrorCodes.SUCCESS);
    933:  ^
    934:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:182: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    935:  response.setState(ErrorCodes.SUCCESS_STRING);
    936:  ^
    937:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:53: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    938:  new ErrorCodes().toStatus((String) rawError, Optional.of(tuple.getStatusCode())));
    939:  ^
    940:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:56: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    941:  new ErrorCodes().getExceptionType((String) rawError);
    942:  ^
    943:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    944:  private final ErrorCodes errorCodes = new ErrorCodes();
    945:  ^
    946:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    947:  private final ErrorCodes errorCodes = new ErrorCodes();
    948:  ^
    949:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:55: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    950:  int status = response.getStatus() == ErrorCodes.SUCCESS ? HTTP_OK : HTTP_INTERNAL_ERROR;
    951:  ^
    952:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:101: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    953:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    954:  ^
    955:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:103: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    956:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    957:  ^
    958:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:124: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    959:  response.setStatus(ErrorCodes.SUCCESS);
    960:  ^
    961:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:125: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    962:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    963:  ^
    964:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:131: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    965:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    966:  ^
    967:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    968:  private final ErrorCodes errorCodes = new ErrorCodes();
    969:  ^
    970:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    971:  private final ErrorCodes errorCodes = new ErrorCodes();
    972:  ^
    973:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:93: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    974:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    975:  ^
    976:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:98: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    977:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    978:  ^
    979:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:145: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    980:  response.setStatus(ErrorCodes.SUCCESS);
    ...
    
    1016:  �[32m[3,076 / 3,077]�[0m 1 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:driver-safari-remote; 44s local, disk-cache
    1017:  �[32m[3,077 / 3,078]�[0m 2 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:shadow_root-safari-remote; 1s disk-cache
    1018:  �[32m[3,077 / 3,078]�[0m 2 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:shadow_root-safari-remote; 0s local, disk-cache
    1019:  �[32m[3,077 / 3,078]�[0m 2 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:shadow_root-safari-remote; 62s local, disk-cache
    1020:  �[32m[3,078 / 3,079]�[0m 3 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:timeout-safari-remote; 0s disk-cache
    1021:  �[32m[3,078 / 3,079]�[0m 3 / 24 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:timeout-safari-remote
    1022:  �[32m[3,078 / 3,079]�[0m 3 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:timeout-safari-remote; 1s local, disk-cache
    1023:  �[32m[3,078 / 3,079]�[0m 3 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:timeout-safari-remote; 20s local, disk-cache
    1024:  �[32m[3,079 / 3,080]�[0m 4 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:error-safari-remote; 1s disk-cache
    1025:  �[32m[3,079 / 3,080]�[0m 4 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:error-safari-remote; 0s local, disk-cache
    1026:  �[32m[3,079 / 3,080]�[0m 4 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:error-safari-remote; 16s local, disk-cache
    ...
    
    1084:  �[32m[3,095 / 3,096]�[0m 20 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:window-safari-remote; 39s local, disk-cache
    1085:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:window-safari-remote (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_x86_64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-safari-remote/test_attempts/attempt_1.log)
    1086:  �[32m[3,095 / 3,096]�[0m 20 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:window-safari-remote; 41s local, disk-cache
    1087:  �[32m[3,095 / 3,096]�[0m 20 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:window-safari-remote; 78s local, disk-cache
    1088:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:window-safari-remote (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_x86_64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-safari-remote/test_attempts/attempt_2.log)
    1089:  �[32m[3,095 / 3,096]�[0m 20 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:window-safari-remote; 80s local, disk-cache
    1090:  �[32m[3,095 / 3,096]�[0m 20 / 24 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:window-safari-remote; 120s local, disk-cache
    1091:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:window-safari-remote (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_x86_64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-safari-remote/test.log)
    1092:  �[31m�[1mFAILED: �[0m//rb/spec/integration/selenium/webdriver:window-safari-remote (Summary)
    ...
    
    1109:  gets the size of the current window
    1110:  sets the size of the current window
    1111:  gets the position of the current window
    1112:  sets the position of the current window
    1113:  gets the rect of the current window
    1114:  sets the rect of the current window
    1115:  can maximize the current window
    1116:  can make window full screen
    1117:  can minimize the window (FAILED - 1)
    1118:  Failures:
    1119:  1) Selenium::WebDriver::Window can minimize the window
    1120:  Failure/Error:
    1121:  expect {
    1122:  wait.until { driver.execute_script('return document.hidden;') }
    1123:  }.not_to raise_error
    1124:  expected no Exception, got #<Selenium::WebDriver::Error::TimeoutError: timed out after 10 seconds> with backtrace:
    1125:  # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'
    1126:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:131:in `block (3 levels) in <module:WebDriver>'
    1127:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:130:in `block (2 levels) in <module:WebDriver>'
    1128:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:130:in `block (2 levels) in <module:WebDriver>'
    1129:  Finished in 36.84 seconds (files took 0.25852 seconds to load)
    1130:  9 examples, 1 failure
    1131:  Failed examples:
    ...
    
    1146:  gets the size of the current window
    1147:  sets the size of the current window
    1148:  gets the position of the current window
    1149:  sets the position of the current window
    1150:  gets the rect of the current window
    1151:  sets the rect of the current window
    1152:  can maximize the current window
    1153:  can make window full screen
    1154:  can minimize the window (FAILED - 1)
    1155:  Failures:
    1156:  1) Selenium::WebDriver::Window can minimize the window
    1157:  Failure/Error:
    1158:  expect {
    1159:  wait.until { driver.execute_script('return document.hidden;') }
    1160:  }.not_to raise_error
    1161:  expected no Exception, got #<Selenium::WebDriver::Error::TimeoutError: timed out after 10 seconds> with backtrace:
    1162:  # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'
    1163:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:131:in `block (3 levels) in <module:WebDriver>'
    1164:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:130:in `block (2 levels) in <module:WebDriver>'
    1165:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:130:in `block (2 levels) in <module:WebDriver>'
    1166:  Finished in 36.55 seconds (files took 0.2595 seconds to load)
    1167:  9 examples, 1 failure
    1168:  Failed examples:
    ...
    
    1183:  gets the size of the current window
    1184:  sets the size of the current window
    1185:  gets the position of the current window
    1186:  sets the position of the current window
    1187:  gets the rect of the current window
    1188:  sets the rect of the current window
    1189:  can maximize the current window
    1190:  can make window full screen
    1191:  can minimize the window (FAILED - 1)
    1192:  Failures:
    1193:  1) Selenium::WebDriver::Window can minimize the window
    1194:  Failure/Error:
    1195:  expect {
    1196:  wait.until { driver.execute_script('return document.hidden;') }
    1197:  }.not_to raise_error
    1198:  expected no Exception, got #<Selenium::WebDriver::Error::TimeoutError: timed out after 10 seconds> with backtrace:
    1199:  # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'
    1200:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:131:in `block (3 levels) in <module:WebDriver>'
    1201:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:130:in `block (2 levels) in <module:WebDriver>'
    1202:  # ./rb/spec/integration/selenium/webdriver/window_spec.rb:130:in `block (2 levels) in <module:WebDriver>'
    1203:  Finished in 39.16 seconds (files took 0.2642 seconds to load)
    1204:  9 examples, 1 failure
    1205:  Failed examples:
    1206:  rspec ./rb/spec/integration/selenium/webdriver/window_spec.rb:127 # Selenium::WebDriver::Window can minimize the window
    1207:  ================================================================================
    1208:  �[32m[3,096 / 3,097]�[0m 21 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:guard-safari-remote; 1s disk-cache
    1209:  �[32m[3,096 / 3,097]�[0m 21 / 24 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:guard-safari-remote
    1210:  �[32m[3,096 / 3,097]�[0m 21 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:guard-safari-remote; 1s local, disk-cache
    1211:  �[32m[3,096 / 3,097]�[0m 21 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:guard-safari-remote; 17s local, disk-cache
    1212:  �[32m[3,097 / 3,098]�[0m 22 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-safari-remote; 1s disk-cache
    1213:  �[32m[3,097 / 3,098]�[0m 22 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-safari-remote; 0s local, disk-cache
    1214:  �[32m[3,097 / 3,098]�[0m 22 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-safari-remote; 252s local, disk-cache
    1215:  �[32m[3,098 / 3,099]�[0m 23 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:navigation-safari-remote; 1s disk-cache
    1216:  �[32m[3,098 / 3,099]�[0m 23 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:navigation-safari-remote; 0s local, disk-cache
    1217:  �[32m[3,098 / 3,099]�[0m 23 / 24 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:navigation-safari-remote; 17s local, disk-cache
    1218:  �[32mINFO: �[0mFound 24 test targets...
    1219:  �[32mINFO: �[0mElapsed time: 1853.151s, Critical Path: 338.30s
    1220:  �[32mINFO: �[0m2869 processes: 1413 disk cache hit, 1165 internal, 173 darwin-sandbox, 52 local, 66 worker.
    1221:  �[32mINFO: �[0mBuild completed, 1 test FAILED, 2869 total actions
    1222:  //rb/spec/integration/selenium/webdriver:action_builder-safari-remote    �[0m�[32mPASSED�[0m in 104.1s
    1223:  //rb/spec/integration/selenium/webdriver:bidi-safari-remote              �[0m�[32mPASSED�[0m in 108.0s
    1224:  //rb/spec/integration/selenium/webdriver:devtools-safari-remote          �[0m�[32mPASSED�[0m in 252.7s
    1225:  //rb/spec/integration/selenium/webdriver:driver-safari-remote            �[0m�[32mPASSED�[0m in 44.0s
    1226:  //rb/spec/integration/selenium/webdriver:element-safari-remote           �[0m�[32mPASSED�[0m in 53.9s
    1227:  //rb/spec/integration/selenium/webdriver:error-safari-remote             �[0m�[32mPASSED�[0m in 16.3s
    ...
    
    1237:  //rb/spec/integration/selenium/webdriver:timeout-safari-remote           �[0m�[32mPASSED�[0m in 20.8s
    1238:  //rb/spec/integration/selenium/webdriver:virtual_authenticator-safari-remote �[0m�[32mPASSED�[0m in 16.3s
    1239:  //rb/spec/integration/selenium/webdriver:zipper-safari-remote            �[0m�[32mPASSED�[0m in 17.2s
    1240:  //rb/spec/integration/selenium/webdriver/bidi:browsing_context-safari-remote �[0m�[32mPASSED�[0m in 235.9s
    1241:  //rb/spec/integration/selenium/webdriver/bidi:log_inspector-safari-remote �[0m�[32mPASSED�[0m in 276.6s
    1242:  //rb/spec/integration/selenium/webdriver/remote:driver-safari-remote     �[0m�[32mPASSED�[0m in 16.0s
    1243:  //rb/spec/integration/selenium/webdriver/remote:element-safari-remote    �[0m�[32mPASSED�[0m in 16.7s
    1244:  //rb/spec/integration/selenium/webdriver/safari:driver-safari-remote     �[0m�[32mPASSED�[0m in 15.3s
    1245:  //rb/spec/integration/selenium/webdriver:window-safari-remote            �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 41.4s
    1246:  Stats over 3 runs: max = 41.4s, min = 39.0s, avg = 39.9s, dev = 1.1s
    1247:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_x86_64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-safari-remote/test.log
    1248:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_x86_64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-safari-remote/test_attempts/attempt_1.log
    1249:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_x86_64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/window-safari-remote/test_attempts/attempt_2.log
    1250:  Executed 24 out of 24 tests: 23 tests pass and �[0m�[31m�[1m1 fails locally�[0m.
    1251:  There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
    1252:  �[0m
    1253:  ##[error]Process completed with exit code 3.
    

    ✨ CI feedback usage guide:

    The CI feedback tool (/checks) automatically triggers when a PR has a failed check.
    The tool analyzes the failed checks and provides several feedbacks:

    • Failed stage
    • Failed test name
    • Failure summary
    • Relevant error logs

    In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR:

    /checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}"
    

    where {repo_name} is the name of the repository, {run_number} is the run number of the failed check, and {job_number} is the job number of the failed check.

    Configuration options

    • enable_auto_checks_feedback - if set to true, the tool will automatically provide feedback when a check is failed. Default is true.
    • excluded_checks_list - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list.
    • enable_help_text - if set to true, the tool will provide a help message with the feedback. Default is true.
    • persistent_comment - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true.
    • final_update_message - if persistent_comment is true and updating a previous checks message, the tool will also create a new message: "Persistent checks updated to latest commit". Default is true.

    See more information about the checks tool in the docs.

    @diemol diemol merged commit 79ed462 into trunk May 16, 2024
    1 check passed
    @diemol diemol deleted the release-4.21.0 branch May 16, 2024 10:50
    sandeepsuryaprasad pushed a commit to sandeepsuryaprasad/selenium that referenced this pull request Oct 29, 2024
    * update Rust version to 0.4.21
    
    * Rust Changelog
    
    * [build] Prepare for release of Selenium 4.21.0 (SeleniumHQ#13945)
    
    * Update pinned browser versions
    
    * Update supported versions for Chrome DevTools
    
    * Update selenium manager version
    
    * Update authors file
    
    Update versions and change logs to release Selenium 4.21.0
    
    * [create-pull-request] automated change
    
    * [js] Running format script
    
    * [java] Enabling some Chrome tests work with BiDi
    
    * [dotnet] Using CDP 124 in the meantime
    
    * [dotnet] Excluding Edge until CDP 125 is available for it
    
    * [java] Enabling bidi tests for Chrome
    
    * [rb] Enabling bidi tests
    
    * [bidi] Remove root ownership parameter due to update in BiDi spec
    
    * Updating changelogs
    
    ---------
    
    Co-authored-by: Selenium CI Bot <selenium-ci@users.noreply.github.com>
    Co-authored-by: Diego Molina <diemol@users.noreply.github.com>
    Co-authored-by: Diego Molina <diemol@gmail.com>
    Co-authored-by: Puja Jagani <puja.jagani93@gmail.com>
    
    * Updating changelogs
    
    [skip ci]
    
    ---------
    
    Co-authored-by: Selenium CI Bot <selenium-ci@users.noreply.github.com>
    Co-authored-by: Selenium CI Bot <diemol+selenium-ci@gmail.com>
    Co-authored-by: Puja Jagani <puja.jagani93@gmail.com>
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    2 participants