Skip to content

[java] remove unused code from ErrorHandler #14195

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

Open
wants to merge 1 commit into
base: trunk
Choose a base branch
from
Open

Conversation

joerg1985
Copy link
Member

@joerg1985 joerg1985 commented Jun 26, 2024

User description

Description

Therefore this PR does:

  • remove all the (im my mind) unused code from the ErrorHandler and the related unit tests
  • update the unit tests to not use the ErrorHandler to decode an error

Let's see what the tests in the CI look like with this change :D
(And we should propably ask some of the Appium people too.)

Motivation and Context

@diemol From the current structure of the code i would assume:
The ...ResponseCodec should be able to decode a HttpResponse into a Response with the knowledge of the protocol.
The ErrorHandler should only work with this Response regardless of the used protocol and not try to guess what the HttpResponse could be.

In the time before the W3C protocol the ErrorHandler was propably responsible for decoding, but this code should be unused now.

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, Tests


Description

  • Simplified the ErrorHandler class by removing unused code, constructors, and methods.
  • Updated the W3CHttpResponseCodec to handle gateway errors by setting WebDriverException.
  • Removed and simplified tests in ErrorHandlerTest to align with the new ErrorHandler implementation.
  • Updated various test files to match the new error messages and handling in ErrorHandler.

Changes walkthrough 📝

Relevant files
Enhancement
ErrorHandler.java
Simplified ErrorHandler class by removing unused code.     

java/src/org/openqa/selenium/remote/ErrorHandler.java

  • Removed unused imports and variables.
  • Simplified the ErrorHandler class by removing redundant methods and
    constructors.
  • Updated exception handling to throw WebDriverException directly.
  • +4/-303 
    W3CHttpResponseCodec.java
    Updated W3CHttpResponseCodec error handling.                         

    java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java

  • Removed handling for HTTP_BAD_METHOD.
  • Updated error handling to set WebDriverException for gateway errors.
  • +3/-7     
    Tests
    ErrorHandlerTest.java
    Simplified ErrorHandler tests.                                                     

    java/test/org/openqa/selenium/remote/ErrorHandlerTest.java

  • Removed tests related to the removed methods in ErrorHandler.
  • Simplified existing tests to match the updated ErrorHandler
    implementation.
  • +11/-409
    RemotableByTest.java
    Updated RemotableByTest for new ErrorHandler implementation.

    java/test/org/openqa/selenium/remote/RemotableByTest.java

  • Updated error response creation to match new ErrorHandler
    implementation.
  • +5/-3     
    RemoteWebDriverUnitTest.java
    Updated RemoteWebDriverUnitTest for new ErrorHandler messages.

    java/test/org/openqa/selenium/remote/RemoteWebDriverUnitTest.java

  • Updated test assertions to match new error messages from ErrorHandler.

  • +1/-1     
    RemoteWebElementTest.java
    Updated RemoteWebElementTest for new ErrorHandler messages.

    java/test/org/openqa/selenium/remote/RemoteWebElementTest.java

  • Updated test assertions to match new error messages from ErrorHandler.

  • +1/-1     
    W3CHttpResponseCodecTest.java
    Updated W3CHttpResponseCodecTest for new error handling. 

    java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java

  • Updated test assertions to check for WebDriverException instances.
  • +2/-2     

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

    Copy link
    Contributor

    PR Reviewer Guide 🔍

    ⏱️ Estimated effort to review [1-5] 4
    🧪 Relevant tests No
    🔒 Security concerns No
    ⚡ Key issues to review Simplification Impact:
    The PR significantly simplifies the ErrorHandler by removing a large amount of code. While this is intended to remove unused code, it's crucial to ensure that these sections are indeed not used in any scenarios, including edge cases not covered by tests.
    Exception Handling:
    The new implementation throws a generic WebDriverException for any non-success response, which might obscure the underlying reasons for errors that were previously handled more descriptively.
    Loss of Functionality:
    The removal of detailed error handling and mapping specific exceptions to error codes could potentially lead to a loss of functionality where specific error types are expected by client code.

    Copy link
    Contributor

    qodo-merge-pro bot commented Jun 26, 2024

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Enhancement
    Handle different HTTP errors explicitly for better error differentiation

    Consider handling other HTTP error statuses explicitly to provide more specific error
    messages or recovery options.

    java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java [90-95]

    -if (HTTP_GATEWAY_TIMEOUT == encodedResponse.getStatus()
    -    || HTTP_BAD_GATEWAY == encodedResponse.getStatus()) {
    -  response.setState("unknown error");
    -  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    -  response.setValue(new WebDriverException("http gateway error: " + encodedResponse.getStatus()));
    +switch (encodedResponse.getStatus()) {
    +  case HTTP_GATEWAY_TIMEOUT:
    +    response.setState("gateway timeout");
    +    response.setStatus(ErrorCodes.TIMEOUT);
    +    response.setValue(new WebDriverException("Gateway timeout error."));
    +    break;
    +  case HTTP_BAD_GATEWAY:
    +    response.setState("bad gateway");
    +    response.setStatus(ErrorCodes.SERVER_ERROR);
    +    response.setValue(new WebDriverException("Bad gateway error."));
    +    break;
    +  default:
    +    response.setState("unknown error");
    +    response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    +    response.setValue(new WebDriverException("Unhandled HTTP error: " + encodedResponse.getStatus()));
    +    break;
     }
     
    • Apply this suggestion
    Suggestion importance[1-10]: 9

    Why: Explicitly handling different HTTP error statuses provides more specific error messages and can offer better recovery options. This enhances the robustness and clarity of error handling.

    9
    Add a check for the response state before throwing the exception

    Consider verifying the state of the Response object in
    testShouldThrowAVanillaWebDriverExceptionIfServerDoesNotProvideAValue to ensure it matches
    expected error conditions before asserting the type and message of the exception.

    java/test/org/openqa/selenium/remote/ErrorHandlerTest.java [73-76]

    +assertThat(response.getState()).isEqualTo("unknown error");
     assertThatExceptionOfType(WebDriverException.class)
         .isThrownBy(() -> handler.throwIfResponseFailed(response, 123))
         .withNoCause()
         .withMessageContaining(new WebDriverException().getMessage());
     
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: Adding a check for the response state before asserting the exception type and message ensures that the test is verifying the correct conditions, improving test accuracy and robustness.

    8
    Enhance exception handling by providing more detailed error messages

    Replace the generic WebDriverException with a more specific exception type or add
    additional context to the exception message to help with debugging.

    java/src/org/openqa/selenium/remote/ErrorHandler.java [41]

    -throw new WebDriverException(throwable);
    +throw new WebDriverException("Specific error occurred: " + throwable.getMessage(), throwable);
     
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: Providing more context in exception messages can significantly aid in debugging and understanding the root cause of errors. This suggestion improves the clarity of the exception message.

    8
    Use a specific error message for exceptions to aid in debugging

    In testShouldThrowAVanillaWebDriverExceptionIfServerDoesNotProvideAValue, ensure that the
    message from new WebDriverException().getMessage() is meaningful and not generic, as it
    might not provide useful debugging information.

    java/test/org/openqa/selenium/remote/ErrorHandlerTest.java [73-76]

    +String expectedMessage = "Specific error message related to the context";
     assertThatExceptionOfType(WebDriverException.class)
         .isThrownBy(() -> handler.throwIfResponseFailed(response, 123))
         .withNoCause()
    -    .withMessageContaining(new WebDriverException().getMessage());
    +    .withMessageContaining(expectedMessage);
     
    • Apply this suggestion
    Suggestion importance[1-10]: 6

    Why: Using a specific error message can aid in debugging by providing more context. However, the suggestion assumes that a meaningful message can be determined, which may not always be straightforward.

    6
    Reintroduce error code mappings for more precise error handling

    Consider reintroducing the ErrorCodes object to map specific exceptions to error codes,
    enhancing the granularity of error handling.

    java/src/org/openqa/selenium/remote/ErrorHandler.java [25]

    -public ErrorHandler() {}
    +private final ErrorCodes errorCodes;
     
    +public ErrorHandler() {
    +  this.errorCodes = new ErrorCodes();
    +}
    +
    • Apply this suggestion
    Suggestion importance[1-10]: 6

    Why: Reintroducing the ErrorCodes object can enhance the granularity of error handling, but it may also reintroduce complexity that was intentionally removed. The benefit depends on the specific use case.

    6
    Possible issue
    Validate the 'state' parameter to prevent invalid 'Response' objects

    For the method createResponse(String state, Object value), consider checking if state is
    null or empty and throw an IllegalArgumentException to prevent creating invalid Response
    objects.

    java/test/org/openqa/selenium/remote/ErrorHandlerTest.java [84-87]

    +if (state == null || state.isEmpty()) {
    +    throw new IllegalArgumentException("State cannot be null or empty");
    +}
     Response response = new Response();
     response.setState(state);
     response.setValue(value);
     return response;
     
    • Apply this suggestion
    Suggestion importance[1-10]: 9

    Why: Adding validation for the 'state' parameter prevents the creation of invalid 'Response' objects, which can help catch errors early and improve code reliability.

    9
    Best practice
    Use a more specific exception type for detailed error handling

    In testShouldThrowIfResponseWasNotSuccess, use a more specific exception type than
    WebDriverException if applicable, to provide more detailed error handling.

    java/test/org/openqa/selenium/remote/ErrorHandlerTest.java [65-67]

    -assertThatExceptionOfType(WebDriverException.class)
    +assertThatExceptionOfType(SpecificException.class) // Replace SpecificException with the actual exception class
         .isThrownBy(() -> handler.throwIfResponseFailed(response, 123))
         .withNoCause();
     
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: Using a more specific exception type can provide more detailed error handling and better insight into the nature of the failure. However, it requires knowledge of the specific exceptions that might be thrown.

    7
    Add logging for better error traceability

    Add logging before throwing exceptions to help trace the error causes more effectively.

    java/src/org/openqa/selenium/remote/ErrorHandler.java [44]

    +LOG.error("Response failed with unknown status: " + response.getState());
     throw new WebDriverException("response failed with unknown status: " + response.getState());
     
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: Adding logging before throwing exceptions can help trace the error causes more effectively, which is a good practice for debugging and monitoring.

    7

    Copy link
    Contributor

    qodo-merge-pro bot commented Jun 26, 2024

    CI Failure Feedback 🧐

    (Checks updated until commit d488750)

    Action: Test / All RBE tests

    Failed stage: Run Bazel [❌]

    Failed test name: OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot

    Failure summary:

    The action failed because the test
    OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot
    did not behave as expected:

  • The test expected an exception of type OpenQA.Selenium.NoSuchShadowRootException to be thrown when
    attempting to get a shadow root from an element that does not have one.
  • However, no exception was thrown, leading to the test failure.

  • Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    970:  Package 'php-symfony-debug-bundle' is not installed, so not removed
    971:  Package 'php-symfony-dependency-injection' is not installed, so not removed
    972:  Package 'php-symfony-deprecation-contracts' is not installed, so not removed
    973:  Package 'php-symfony-discord-notifier' is not installed, so not removed
    974:  Package 'php-symfony-doctrine-bridge' is not installed, so not removed
    975:  Package 'php-symfony-doctrine-messenger' is not installed, so not removed
    976:  Package 'php-symfony-dom-crawler' is not installed, so not removed
    977:  Package 'php-symfony-dotenv' is not installed, so not removed
    978:  Package 'php-symfony-error-handler' is not installed, so not removed
    ...
    
    1897:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/click_submit_test.html -> javascript/atoms/test/click_submit_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1898:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/click_test.html -> javascript/atoms/test/click_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1899:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/clientrect_test.html -> javascript/atoms/test/clientrect_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1900:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/color_test.html -> javascript/atoms/test/color_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1901:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/dom_test.html -> javascript/atoms/test/dom_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1902:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/drag_test.html -> javascript/atoms/test/drag_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1903:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/enabled_test.html -> javascript/atoms/test/enabled_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1904:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/enter_submit_test.html -> javascript/atoms/test/enter_submit_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1905:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:351:19: runfiles symlink javascript/atoms/test/error_test.html -> javascript/atoms/test/error_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    ...
    
    2010:  (00:17:22) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/webdriver/BUILD.bazel:67:19: runfiles symlink javascript/webdriver/test/testutil_test.js -> javascript/webdriver/test/testutil_test.js obscured by javascript/webdriver/test -> bazel-out/k8-fastbuild/bin/javascript/webdriver/test
    2011:  (00:17:22) �[32mAnalyzing:�[0m 2148 targets (1570 packages loaded, 45267 targets configured)
    2012:  �[32m[6,012 / 6,534]�[0m 143 / 695 tests;�[0m Building java/src/org/openqa/selenium/remote/libapi-class.jar (71 source files); 6s remote, remote-cache ... (46 actions, 10 running)
    2013:  (00:17:27) �[32mAnalyzing:�[0m 2148 targets (1570 packages loaded, 45482 targets configured)
    2014:  �[32m[6,656 / 7,111]�[0m 185 / 783 tests;�[0m Building java/src/org/openqa/selenium/remote/libapi-class.jar (71 source files); 11s remote, remote-cache ... (50 actions, 3 running)
    2015:  (00:17:32) �[32mAnalyzing:�[0m 2148 targets (1570 packages loaded, 45769 targets configured)
    2016:  �[32m[6,836 / 7,398]�[0m 212 / 880 tests;�[0m Building java/src/org/openqa/selenium/remote/libapi-class.jar (71 source files); 16s remote, remote-cache ... (48 actions, 4 running)
    2017:  (00:17:37) �[32mINFO: �[0mFrom Building java/src/org/openqa/selenium/remote/libapi-class.jar (71 source files):
    2018:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2019:  ErrorCodes errorCodes = new ErrorCodes();
    2020:  ^
    2021:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2022:  ErrorCodes errorCodes = new ErrorCodes();
    2023:  ^
    2024:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:181: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2025:  response.setStatus(ErrorCodes.SUCCESS);
    2026:  ^
    2027:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:182: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2028:  response.setState(ErrorCodes.SUCCESS_STRING);
    2029:  ^
    2030:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:53: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2031:  new ErrorCodes().toStatus((String) rawError, Optional.of(tuple.getStatusCode())));
    2032:  ^
    2033:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:56: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2034:  new ErrorCodes().getExceptionType((String) rawError);
    2035:  ^
    2036:  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
    2037:  private final ErrorCodes errorCodes = new ErrorCodes();
    2038:  ^
    2039:  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
    2040:  private final ErrorCodes errorCodes = new ErrorCodes();
    2041:  ^
    2042:  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
    2043:  int status = response.getStatus() == ErrorCodes.SUCCESS ? HTTP_OK : HTTP_INTERNAL_ERROR;
    2044:  ^
    2045:  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
    2046:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    2047:  ^
    2048:  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
    2049:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    2050:  ^
    2051:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:117: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2052:  response.setStatus(ErrorCodes.SUCCESS);
    2053:  ^
    2054:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:118: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2055:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    2056:  ^
    2057:  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
    2058:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    2059:  ^
    2060:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:69: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2061:  private final ErrorCodes errorCodes = new ErrorCodes();
    2062:  ^
    2063:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:69: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2064:  private final ErrorCodes errorCodes = new ErrorCodes();
    2065:  ^
    2066:  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
    2067:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    2068:  ^
    2069:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:141: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2070:  response.setStatus(ErrorCodes.SUCCESS);
    ...
    
    2956:  (00:25:39) �[32m[14,417 / 15,324]�[0m 926 / 2148 tests;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 91s remote, remote-cache ... (50 actions, 32 running)
    2957:  (00:25:44) �[32m[14,424 / 15,324]�[0m 933 / 2148 tests;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 96s remote, remote-cache ... (50 actions, 31 running)
    2958:  (00:25:50) �[32m[14,428 / 15,327]�[0m 935 / 2148 tests;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 102s remote, remote-cache ... (50 actions, 31 running)
    2959:  (00:25:55) �[32m[14,433 / 15,327]�[0m 940 / 2148 tests;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 107s remote, remote-cache ... (50 actions, 27 running)
    2960:  (00:26:01) �[32m[14,434 / 15,327]�[0m 941 / 2148 tests;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 112s remote, remote-cache ... (50 actions, 28 running)
    2961:  (00:26:06) �[32m[14,445 / 15,327]�[0m 950 / 2148 tests;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 117s remote, remote-cache ... (50 actions, 23 running)
    2962:  (00:26:11) �[32m[14,446 / 15,327]�[0m 951 / 2148 tests;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 123s remote, remote-cache ... (50 actions, 28 running)
    2963:  (00:26:12) �[31m�[1mFAIL: �[0m//dotnet/test/common:ShadowRootHandlingTest-edge (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild-ST-d67017d35e85/testlogs/dotnet/test/common/ShadowRootHandlingTest-edge/test.log)
    2964:  �[31m�[1mFAILED: �[0m//dotnet/test/common:ShadowRootHandlingTest-edge (Summary)
    ...
    
    3024:  00:24:49.781 TRACE HttpCommandExecutor: >> GET RequestUri: http://localhost:46819/session/dda418e3ebfebacb6b46399ba3979f1b/element/f.58AA2F4DF7DFB43E1BA5A236CFE10086.d.BD6E3AE80EB4349E18118BC70D9C4E53.e.9/shadow, Content: null, Headers: 3
    3025:  00:24:49.792 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 1
    3026:  00:24:49.792 DEBUG HttpCommandExecutor: Response: ( Success: System.Collections.Generic.Dictionary`2[System.String,System.Object])
    3027:  00:24:49.793 DEBUG HttpCommandExecutor: Executing command: [dda418e3ebfebacb6b46399ba3979f1b]: findShadowChildElement {"id":"f.58AA2F4DF7DFB43E1BA5A236CFE10086.d.BD6E3AE80EB4349E18118BC70D9C4E53.e.10","using":"css selector","value":"input"}
    3028:  00:24:49.794 TRACE HttpCommandExecutor: >> POST RequestUri: http://localhost:46819/session/dda418e3ebfebacb6b46399ba3979f1b/shadow/f.58AA2F4DF7DFB43E1BA5A236CFE10086.d.BD6E3AE80EB4349E18118BC70D9C4E53.e.10/element, Content: System.Net.Http.ByteArrayContent, Headers: 2
    3029:  {"using":"css selector","value":"input"}
    3030:  00:24:49.809 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 1
    3031:  00:24:49.810 DEBUG HttpCommandExecutor: Response: ( Success: System.Collections.Generic.Dictionary`2[System.String,System.Object])
    3032:  00:24:49.812 DEBUG HttpCommandExecutor: Executing command: [dda418e3ebfebacb6b46399ba3979f1b]: executeScript {"script":"/* get-attribute */return (function(){return (function(){var d=this||self;function f(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a};var h=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(\u0022string\u0022===typeof a)return\u0022string\u0022!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c\u003Ca.length;c\u002B\u002B)if(c in a\u0026\u0026a[c]===b)return c;return-1},k=Array.prototype.forEach?function(a,b){Array.prototype.forEach.call(a,b,void 0)}:function(a,b){for(var c=a.length,e=\u0022string\u0022===typeof a?a.split(\u0022\u0022):a,g=0;g\u003Cc;g\u002B\u002B)g in e\u0026\u0026b.call(void 0,e[g],g,a)};function l(a,b){this.code=a;this.a=m[a]||n;this.message=b||\u0022\u0022;a=this.a.replace(/((?:^|\\s\u002B)[a-z])/g,function(c){return c.toUpperCase().replace(/^[\\s\\xa0]\u002B/g,\u0022\u0022)});b=a.length-5;if(0\u003Eb||a.indexOf(\u0022Error\u0022,b)!=b)a\u002B=\u0022Error\u0022;this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\u0022\u0022}f(l,Error);var n=\u0022unknown error\u0022,m={15:\u0022element not selectable\u0022,11:\u0022element not visible\u0022};m[31]=n;m[30]=n;m[24]=\u0022invalid cookie domain\u0022;m[29]=\u0022invalid element coordinates\u0022;m[12]=\u0022invalid element state\u0022;m[32]=\u0022invalid selector\u0022;\nm[51]=\u0022invalid selector\u0022;m[52]=\u0022invalid selector\u0022;m[17]=\u0022javascript error\u0022;m[405]=\u0022unsupported operation\u0022;m[34]=\u0022move target out of bounds\u0022;m[27]=\u0022no such alert\u0022;m[7]=\u0022no such element\u0022;m[8]=\u0022no such frame\u0022;m[23]=\u0022no such window\u0022;m[28]=\u0022script timeout\u0022;m[33]=\u0022session not created\u0022;m[10]=\u0022stale element reference\u0022;m[21]=\u0022timeout\u0022;m[25]=\u0022unable to set cookie\u0022;m[26]=\u0022unexpected alert open\u0022;m[13]=n;m[9]=\u0022unknown command\u0022;var p;a:{var q=d.navigator;if(q){var r=q.userAgent;if(r){p=r;break a}}p=\u0022\u0022}function t(a){return-1!=p.indexOf(a)};function u(){return t(\u0022Firefox\u0022)||t(\u0022FxiOS\u0022)}function v(){return(t(\u0022Chrome\u0022)||t(\u0022CriOS\u0022))\u0026\u0026!t(\u0022Edge\u0022)};function w(){return t(\u0022iPhone\u0022)\u0026\u0026!t(\u0022iPod\u0022)\u0026\u0026!t(\u0022iPad\u0022)};var y=t(\u0022Opera\u0022),z=t(\u0022Trident\u0022)||t(\u0022MSIE\u0022),A=t(\u0022Edge\u0022),B=t(\u0022Gecko\u0022)\u0026\u0026!(-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022))\u0026\u0026!(t(\u0022Trident\u0022)||t(\u0022MSIE\u0022))\u0026\u0026!t(\u0022Edge\u0022),C=-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022);function D(){var a=d.document;return a?a.documentMode:void 0}var E;\na:{var F=\u0022\u0022,G=function(){var a=p;if(B)return/rv:([^\\);]\u002B)(\\)|;)/.exec(a);if(A)return/Edge\\/([\\d\\.]\u002B)/.exec(a);if(z)return/\\b(?:MSIE|rv)[: ]([^\\);]\u002B)(\\)|;)/.exec(a);if(C)return/WebKit\\/(\\S\u002B)/.exec(a);if(y)return/(?:Version)[ \\/]?(\\S\u002B)/.exec(a)}();G\u0026\u0026(F=G?G[1]:\u0022\u0022);if(z){var H=D();if(null!=H\u0026\u0026H\u003EparseFloat(F)){E=String(H);break a}}E=F}var I;I=d.document\u0026\u0026z?D():void 0;var J=u(),K=w()||t(\u0022iPod\u0022),L=t(\u0022iPad\u0022),M=t(\u0022Android\u0022)\u0026\u0026!(v()||u()||t(\u0022Opera\u0022)||t(\u0022Silk\u0022)),N=v(),aa=t(\u0022Safari\u0022)\u0026\u0026!(v()||t(\u0022Coast\u0022)||t(\u0022Opera\u0022)||t(\u0022Edge\u0022)||t(\u0022Edg/\u0022)||t(\u0022OPR\u0022)||u()||t(\u0022Silk\u0022)||t(\u0022Android\u0022))\u0026\u0026!(w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022));function O(a){return(a=a.exec(p))?a[1]:\u0022\u0022}(function(){if(J)return O(/Firefox\\/([0-9.]\u002B)/);if(z||A||y)return E;if(N)return w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022)?O(/CriOS\\/([0-9.]\u002B)/):O(/Chrome\\/([0-9.]\u002B)/);if(aa\u0026\u0026!(w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022)))return O(/Version\\/([0-9.]\u002B)/);if(K||L){var a=/Version\\/(\\S\u002B).*Mobile\\/(\\S\u002B)/.exec(p);if(a)return a[1]\u002B\u0022.\u0022\u002Ba[2]}else if(M)return(a=O(/Android\\s\u002B([0-9.]\u002B)/))?a:O(/Version\\/([0-9.]\u002B)/);return\u0022\u0022})();var P=z\u0026\u0026!(8\u003C=Number(I)),ba=z\u0026\u0026!(9\u003C=Number(I));var ca={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},Q={IMG:\u0022 \u0022,BR:\u0022\\n\u0022};function R(a,b,c){if(!(a.nodeName in ca))if(3==a.nodeType)c?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\u0022\u0022)):b.push(a.nodeValue);else if(a.nodeName in Q)b.push(Q[a.nodeName]);else for(a=a.firstChild;a;)R(a,b,c),a=a.nextSibling};function S(a,b){b=b.toLowerCase();return\u0022style\u0022==b?da(a.style.cssText):P\u0026\u0026\u0022value\u0022==b\u0026\u0026T(a,\u0022INPUT\u0022)?a.value:ba\u0026\u0026!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))\u0026\u0026a.specified?a.value:null}var ea=/[;]\u002B(?=(?:(?:[^\u0022]*\u0022){2})*[^\u0022]*$)(?=(?:(?:[^\u0027]*\u0027){2})*[^\u0027]*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction da(a){var b=[];k(a.split(ea),function(c){var e=c.indexOf(\u0022:\u0022);0\u003Ce\u0026\u0026(c=[c.slice(0,e),c.slice(e\u002B1)],2==c.length\u0026\u0026b.push(c[0].toLowerCase(),\u0022:\u0022,c[1],\u0022;\u0022))});b=b.join(\u0022\u0022);return b=\u0022;\u0022==b.charAt(b.length-1)?b:b\u002B\u0022;\u0022}function U(a,b){P\u0026\u0026\u0022value\u0022==b\u0026\u0026T(a,\u0022OPTION\u0022)\u0026\u0026null===S(a,\u0022value\u0022)?(b=[],R(a,b,!1),a=b.join(\u0022\u0022)):a=a[b];return a}\nfunction T(a,b){b\u0026\u0026\u0022string\u0022!==typeof b\u0026\u0026(b=b.toString());return a instanceof HTMLFormElement?!!a\u0026\u00261==a.nodeType\u0026\u0026(!b||\u0022FORM\u0022==b):!!a\u0026\u00261==a.nodeType\u0026\u0026(!b||a.tagName.toUpperCase()==b)}function V(a){return T(a,\u0022OPTION\u0022)?!0:T(a,\u0022INPUT\u0022)?(a=a.type.toLowerCase(),\u0022checkbox\u0022==a||\u0022radio\u0022==a):!1};var fa={\u0022class\u0022:\u0022className\u0022,readonly:\u0022readOnly\u0022},ha=\u0022allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\u0022.split(\u0022 \u0022);function W(a,b){var c=null,e=b.toLowerCase();if(\u0022style\u0022==e)return(c=a.style)\u0026\u0026\u0022string\u0022!=typeof c\u0026\u0026(c=c.cssText),c;if((\u0022selected\u0022==e||\u0022checked\u0022==e)\u0026\u0026V(a)){if(!V(a))throw new l(15,\u0022Element is not selectable\u0022);b=\u0022selected\u0022;c=a.type\u0026\u0026a.type.toLowerCase();if(\u0022checkbox\u0022==c||\u0022radio\u0022==c)b=\u0022checked\u0022;return U(a,b)?\u0022true\u0022:null}var g=T(a,\u0022A\u0022);if(T(a,\u0022IMG\u0022)\u0026\u0026\u0022src\u0022==e||g\u0026\u0026\u0022href\u0022==e)return(c=S(a,e))\u0026\u0026(c=U(a,e)),c;if(\u0022spellcheck\u0022==e){c=S(a,e);if(null!==c){if(\u0022false\u0022==c.toLowerCase())return\u0022false\u0022;if(\u0022true\u0022==c.toLowerCase())return\u0022true\u0022}return U(a,\ne)\u002B\u0022\u0022}g=fa[b]||b;if(0\u003C=h(ha,e))return(c=null!==S(a,b)||U(a,g))?\u0022true\u0022:null;try{var x=U(a,g)}catch(ia){}(e=null==x)||(e=typeof x,e=\u0022object\u0022==e\u0026\u0026null!=x||\u0022function\u0022==e);e?c=S(a,b):c=x;return null!=c?c.toString():null}var X=[\u0022_\u0022],Y=d;X[0]in Y||\u0022undefined\u0022==typeof Y.execScript||Y.execScript(\u0022var \u0022\u002BX[0]);for(var Z;X.length\u0026\u0026(Z=X.shift());)X.length||void 0===W?Y[Z]\u0026\u0026Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=W;; return this._.apply(null,arguments);}).apply({navigator:typeof window!=\u0027undefined\u0027?window.navigator:null,document:typeof window!=\u0027undefined\u0027?window.document:null}, arguments);}\n).apply(null, arguments);","args":[{"element-6066-11e4-a52e-4f735466cecf":"f.58AA2F4DF7DFB43E1BA5A236CFE10086.d.BD6E3AE80EB4349E18118BC70D9C4E53.e.8"},"type"]}
    3033:  00:24:49.817 TRACE HttpCommandExecutor: >> POST RequestUri: http://localhost:46819/session/dda418e3ebfebacb6b46399ba3979f1b/execute/sync, Content: System.Net.Http.ByteArrayContent, Headers: 2
    3034:  {"script":"/* get-attribute */return (function(){return (function(){var d=this||self;function f(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a};var h=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(\u0022string\u0022===typeof a)return\u0022string\u0022!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c\u003Ca.length;c\u002B\u002B)if(c in a\u0026\u0026a[c]===b)return c;return-1},k=Array.prototype.forEach?function(a,b){Array.prototype.forEach.call(a,b,void 0)}:function(a,b){for(var c=a.length,e=\u0022string\u0022===typeof a?a.split(\u0022\u0022):a,g=0;g\u003Cc;g\u002B\u002B)g in e\u0026\u0026b.call(void 0,e[g],g,a)};function l(a,b){this.code=a;this.a=m[a]||n;this.message=b||\u0022\u0022;a=this.a.replace(/((?:^|\\s\u002B)[a-z])/g,function(c){return c.toUpperCase().replace(/^[\\s\\xa0]\u002B/g,\u0022\u0022)});b=a.length-5;if(0\u003Eb||a.indexOf(\u0022Error\u0022,b)!=b)a\u002B=\u0022Error\u0022;this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\u0022\u0022}f(l,Error);var n=\u0022unknown error\u0022,m={15:\u0022element not selectable\u0022,11:\u0022element not visible\u0022};m[31]=n;m[30]=n;m[24]=\u0022invalid cookie domain\u0022;m[29]=\u0022invalid element coordinates\u0022;m[12]=\u0022invalid element state\u0022;m[32]=\u0022invalid selector\u0022;\nm[51]=\u0022invalid selector\u0022;m[52]=\u0022invalid selector\u0022;m[17]=\u0022javascript error\u0022;m[405]=\u0022unsupported operation\u0022;m[34]=\u0022move target out of bounds\u0022;m[27]=\u0022no such alert\u0022;m[7]=\u0022no such element\u0022;m[8]=\u0022no such frame\u0022;m[23]=\u0022no such window\u0022;m[28]=\u0022script timeout\u0022;m[33]=\u0022session not created\u0022;m[10]=\u0022stale element reference\u0022;m[21]=\u0022timeout\u0022;m[25]=\u0022unable to set cookie\u0022;m[26]=\u0022unexpected alert open\u0022;m[13]=n;m[9]=\u0022unknown command\u0022;var p;a:{var q=d.navigator;if(q){var r=q.userAgent;if(r){p=r;break a}}p=\u0022\u0022}function t(a){return-1!=p.indexOf(a)};function u(){return t(\u0022Firefox\u0022)||t(\u0022FxiOS\u0022)}function v(){return(t(\u0022Chrome\u0022)||t(\u0022CriOS\u0022))\u0026\u0026!t(\u0022Edge\u0022)};function w(){return t(\u0022iPhone\u0022)\u0026\u0026!t(\u0022iPod\u0022)\u0026\u0026!t(\u0022iPad\u0022)};var y=t(\u0022Opera\u0022),z=t(\u0022Trident\u0022)||t(\u0022MSIE\u0022),A=t(\u0022Edge\u0022),B=t(\u0022Gecko\u0022)\u0026\u0026!(-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022))\u0026\u0026!(t(\u0022Trident\u0022)||t(\u0022MSIE\u0022))\u0026\u0026!t(\u0022Edge\u0022),C=-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022);function D(){var a=d.document;return a?a.documentMode:void 0}var E;\na:{var F=\u0022\u0022,G=function(){var a=p;if(B)return/rv:([^\\);]\u002B)(\\)|;)/.exec(a);if(A)return/Edge\\/([\\d\\.]\u002B)/.exec(a);if(z)return/\\b(?:MSIE|rv)[: ]([^\\);]\u002B)(\\)|;)/.exec(a);if(C)return/WebKit\\/(\\S\u002B)/.exec(a);if(y)return/(?:Version)[ \\/]?(\\S\u002B)/.exec(a)}();G\u0026\u0026(F=G?G[1]:\u0022\u0022);if(z){var H=D();if(null!=H\u0026\u0026H\u003EparseFloat(F)){E=String(H);break a}}E=F}var I;I=d.document\u0026\u0026z?D():void 0;var J=u(),K=w()||t(\u0022iPod\u0022),L=t(\u0022iPad\u0022),M=t(\u0022Android\u0022)\u0026\u0026!(v()||u()||t(\u0022Opera\u0022)||t(\u0022Silk\u0022)),N=v(),aa=t(\u0022Safari\u0022)\u0026\u0026!(v()||t(\u0022Coast\u0022)||t(\u0022Opera\u0022)||t(\u0022Edge\u0022)||t(\u0022Edg/\u0022)||t(\u0022OPR\u0022)||u()||t(\u0022Silk\u0022)||t(\u0022Android\u0022))\u0026\u0026!(w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022));function O(a){return(a=a.exec(p))?a[1]:\u0022\u0022}(function(){if(J)return O(/Firefox\\/([0-9.]\u002B)/);if(z||A||y)return E;if(N)return w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022)?O(/CriOS\\/([0-9.]\u002B)/):O(/Chrome\\/([0-9.]\u002B)/);if(aa\u0026\u0026!(w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022)))return O(/Version\\/([0-9.]\u002B)/);if(K||L){var a=/Version\\/(\\S\u002B).*Mobile\\/(\\S\u002B)/.exec(p);if(a)return a[1]\u002B\u0022.\u0022\u002Ba[2]}else if(M)return(a=O(/Android\\s\u002B([0-9.]\u002B)/))?a:O(/Version\\/([0-9.]\u002B)/);return\u0022\u0022})();var P=z\u0026\u0026!(8\u003C=Number(I)),ba=z\u0026\u0026!(9\u003C=Number(I));var ca={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},Q={IMG:\u0022 \u0022,BR:\u0022\\n\u0022};function R(a,b,c){if(!(a.nodeName in ca))if(3==a.nodeType)c?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\u0022\u0022)):b.push(a.nodeValue);else if(a.nodeName in Q)b.push(Q[a.nodeName]);else for(a=a.firstChild;a;)R(a,b,c),a=a.nextSibling};function S(a,b){b=b.toLowerCase();return\u0022style\u0022==b?da(a.style.cssText):P\u0026\u0026\u0022value\u0022==b\u0026\u0026T(a,\u0022INPUT\u0022)?a.value:ba\u0026\u0026!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))\u0026\u0026a.specified?a.value:null}var ea=/[;]\u002B(?=(?:(?:[^\u0022]*\u0022){2})*[^\u0022]*$)(?=(?:(?:[^\u0027]*\u0027){2})*[^\u0027]*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction da(a){var b=[];k(a.split(ea),function(c){var e=c.indexOf(\u0022:\u0022);0\u003Ce\u0026\u0026(c=[c.slice(0,e),c.slice(e\u002B1)],2==c.length\u0026\u0026b.push(c[0].toLowerCase(),\u0022:\u0022,c[1],\u0022;\u0022))});b=b.join(\u0022\u0022);return b=\u0022;\u0022==b.charAt(b.length-1)?b:b\u002B\u0022;\u0022}function U(a,b){P\u0026\u0026\u0022value\u0022==b\u0026\u0026T(a,\u0022OPTION\u0022)\u0026\u0026null===S(a,\u0022value\u0022)?(b=[],R(a,b,!1),a=b.join(\u0022\u0022)):a=a[b];return a}\nfunction T(a,b){b\u0026\u0026\u0022string\u0022!==typeof b\u0026\u0026(b=b.toString());return a instanceof HTMLFormElement?!!a\u0026\u00261==a.nodeType\u0026\u0026(!b||\u0022FORM\u0022==b):!!a\u0026\u00261==a.nodeType\u0026\u0026(!b||a.tagName.toUpperCase()==b)}function V(a){return T(a,\u0022OPTION\u0022)?!0:T(a,\u0022INPUT\u0022)?(a=a.type.toLowerCase(),\u0022checkbox\u0022==a||\u0022radio\u0022==a):!1};var fa={\u0022class\u0022:\u0022className\u0022,readonly:\u0022readOnly\u0022},ha=\u0022allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\u0022.split(\u0022 \u0022);function W(a,b){var c=null,e=b.toLowerCase();if(\u0022style\u0022==e)return(c=a.style)\u0026\u0026\u0022string\u0022!=typeof c\u0026\u0026(c=c.cssText),c;if((\u0022selected\u0022==e||\u0022checked\u0022==e)\u0026\u0026V(a)){if(!V(a))throw new l(15,\u0022Element is not selectable\u0022);b=\u0022selected\u0022;c=a.type\u0026\u0026a.type.toLowerCase();if(\u0022checkbox\u0022==c||\u0022radio\u0022==c)b=\u0022checked\u0022;return U(a,b)?\u0022true\u0022:null}var g=T(a,\u0022A\u0022);if(T(a,\u0022IMG\u0022)\u0026\u0026\u0022src\u0022==e||g\u0026\u0026\u0022href\u0022==e)return(c=S(a,e))\u0026\u0026(c=U(a,e)),c;if(\u0022spellcheck\u0022==e){c=S(a,e);if(null!==c){if(\u0022false\u0022==c.toLowerCase())return\u0022false\u0022;if(\u0022true\u0022==c.toLowerCase())return\u0022true\u0022}return U(a,\ne)\u002B\u0022\u0022}g=fa[b]||b;if(0\u003C=h(ha,e))return(c=null!==S(a,b)||U(a,g))?\u0022true\u0022:null;try{var x=U(a,g)}catch(ia){}(e=null==x)||(e=typeof x,e=\u0022object\u0022==e\u0026\u0026null!=x||\u0022function\u0022==e);e?c=S(a,b):c=x;return null!=c?c.toString():null}var X=[\u0022_\u0022],Y=d;X[0]in Y||\u0022undefined\u0022==typeof Y.execScript||Y.execScript(\u0022var \u0022\u002BX[0]);for(var Z;X.length\u0026\u0026(Z=X.shift());)X.length||void 0===W?Y[Z]\u0026\u0026Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=W;; return this._.apply(null,arguments);}).apply({navigator:typeof window!=\u0027undefined\u0027?window.navigator:null,document:typeof window!=\u0027undefined\u0027?window.document:null}, arguments);}\n).apply(null, arguments);","args":[{"element-6066-11e4-a52e-4f735466cecf":"f.58AA2F4DF7DFB43E1BA5A236CFE10086.d.BD6E3AE80EB4349E18118BC70D9C4E53.e.8"},"type"]}
    ...
    
    3083:  => OpenQA.Selenium.ShadowRootHandlingTest
    3084:  Creating new driver of OpenQA.Selenium.Edge.StableChannelEdgeDriver type...
    3085:  => OpenQA.Selenium.AssemblyFixture
    3086:  00:24:50.179 DEBUG HttpCommandExecutor: Executing command: [dda418e3ebfebacb6b46399ba3979f1b]: quit {}
    3087:  00:24:50.179 TRACE HttpCommandExecutor: >> DELETE RequestUri: http://localhost:46819/session/dda418e3ebfebacb6b46399ba3979f1b, Content: null, Headers: 2
    3088:  00:24:50.281 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 1
    3089:  00:24:50.282 DEBUG HttpCommandExecutor: Response: ( Success: )
    3090:  Standalone jar is /mnt/engflow/worker/work/1/exec/bazel-out/k8-fastbuild-ST-d67017d35e85/bin/dotnet/test/common/ShadowRootHandlingTest-edge/net8.0/WebDriver.Common.Tests.dll.sh.runfiles/_main/java/test/org/openqa/selenium/environment/appserver 36957
    3091:  Errors, Failures and Warnings
    3092:  1) Failed : OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot
    3093:  Expected: instance of <OpenQA.Selenium.NoSuchShadowRootException>
    3094:  But was:  no exception thrown
    3095:  at OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot()
    3096:  Run Settings
    3097:  Number of Test Workers: 2
    3098:  Work Directory: /mnt/engflow/worker/work/1/exec/bazel-out/k8-fastbuild-ST-d67017d35e85/bin/dotnet/test/common/ShadowRootHandlingTest-edge/net8.0/WebDriver.Common.Tests.dll.sh.runfiles/_main
    3099:  Internal Trace: Off
    3100:  Test Run Summary
    3101:  Overall result: Failed
    3102:  Test Count: 5, Passed: 4, Failed: 1, Warnings: 0, Inconclusive: 0, Skipped: 0
    3103:  Failed Tests - Failures: 1, Errors: 0, Invalid: 0
    ...
    
    3166:  00:25:36.757 TRACE HttpCommandExecutor: >> GET RequestUri: http://localhost:32979/session/9a32dc780ce818525fadf96cc6cc275f/element/f.B4CB0B3E884DB623FD1C472335A8FCE3.d.8C88064417FCFB628D8F468B26E1D3DC.e.9/shadow, Content: null, Headers: 3
    3167:  00:25:36.764 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 1
    3168:  00:25:36.764 DEBUG HttpCommandExecutor: Response: ( Success: System.Collections.Generic.Dictionary`2[System.String,System.Object])
    3169:  00:25:36.765 DEBUG HttpCommandExecutor: Executing command: [9a32dc780ce818525fadf96cc6cc275f]: findShadowChildElement {"id":"f.B4CB0B3E884DB623FD1C472335A8FCE3.d.8C88064417FCFB628D8F468B26E1D3DC.e.10","using":"css selector","value":"input"}
    3170:  00:25:36.765 TRACE HttpCommandExecutor: >> POST RequestUri: http://localhost:32979/session/9a32dc780ce818525fadf96cc6cc275f/shadow/f.B4CB0B3E884DB623FD1C472335A8FCE3.d.8C88064417FCFB628D8F468B26E1D3DC.e.10/element, Content: System.Net.Http.ByteArrayContent, Headers: 2
    3171:  {"using":"css selector","value":"input"}
    3172:  00:25:36.779 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 1
    3173:  00:25:36.780 DEBUG HttpCommandExecutor: Response: ( Success: System.Collections.Generic.Dictionary`2[System.String,System.Object])
    3174:  00:25:36.781 DEBUG HttpCommandExecutor: Executing command: [9a32dc780ce818525fadf96cc6cc275f]: executeScript {"script":"/* get-attribute */return (function(){return (function(){var d=this||self;function f(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a};var h=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(\u0022string\u0022===typeof a)return\u0022string\u0022!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c\u003Ca.length;c\u002B\u002B)if(c in a\u0026\u0026a[c]===b)return c;return-1},k=Array.prototype.forEach?function(a,b){Array.prototype.forEach.call(a,b,void 0)}:function(a,b){for(var c=a.length,e=\u0022string\u0022===typeof a?a.split(\u0022\u0022):a,g=0;g\u003Cc;g\u002B\u002B)g in e\u0026\u0026b.call(void 0,e[g],g,a)};function l(a,b){this.code=a;this.a=m[a]||n;this.message=b||\u0022\u0022;a=this.a.replace(/((?:^|\\s\u002B)[a-z])/g,function(c){return c.toUpperCase().replace(/^[\\s\\xa0]\u002B/g,\u0022\u0022)});b=a.length-5;if(0\u003Eb||a.indexOf(\u0022Error\u0022,b)!=b)a\u002B=\u0022Error\u0022;this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\u0022\u0022}f(l,Error);var n=\u0022unknown error\u0022,m={15:\u0022element not selectable\u0022,11:\u0022element not visible\u0022};m[31]=n;m[30]=n;m[24]=\u0022invalid cookie domain\u0022;m[29]=\u0022invalid element coordinates\u0022;m[12]=\u0022invalid element state\u0022;m[32]=\u0022invalid selector\u0022;\nm[51]=\u0022invalid selector\u0022;m[52]=\u0022invalid selector\u0022;m[17]=\u0022javascript error\u0022;m[405]=\u0022unsupported operation\u0022;m[34]=\u0022move target out of bounds\u0022;m[27]=\u0022no such alert\u0022;m[7]=\u0022no such element\u0022;m[8]=\u0022no such frame\u0022;m[23]=\u0022no such window\u0022;m[28]=\u0022script timeout\u0022;m[33]=\u0022session not created\u0022;m[10]=\u0022stale element reference\u0022;m[21]=\u0022timeout\u0022;m[25]=\u0022unable to set cookie\u0022;m[26]=\u0022unexpected alert open\u0022;m[13]=n;m[9]=\u0022unknown command\u0022;var p;a:{var q=d.navigator;if(q){var r=q.userAgent;if(r){p=r;break a}}p=\u0022\u0022}function t(a){return-1!=p.indexOf(a)};function u(){return t(\u0022Firefox\u0022)||t(\u0022FxiOS\u0022)}function v(){return(t(\u0022Chrome\u0022)||t(\u0022CriOS\u0022))\u0026\u0026!t(\u0022Edge\u0022)};function w(){return t(\u0022iPhone\u0022)\u0026\u0026!t(\u0022iPod\u0022)\u0026\u0026!t(\u0022iPad\u0022)};var y=t(\u0022Opera\u0022),z=t(\u0022Trident\u0022)||t(\u0022MSIE\u0022),A=t(\u0022Edge\u0022),B=t(\u0022Gecko\u0022)\u0026\u0026!(-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022))\u0026\u0026!(t(\u0022Trident\u0022)||t(\u0022MSIE\u0022))\u0026\u0026!t(\u0022Edge\u0022),C=-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022);function D(){var a=d.document;return a?a.documentMode:void 0}var E;\na:{var F=\u0022\u0022,G=function(){var a=p;if(B)return/rv:([^\\);]\u002B)(\\)|;)/.exec(a);if(A)return/Edge\\/([\\d\\.]\u002B)/.exec(a);if(z)return/\\b(?:MSIE|rv)[: ]([^\\);]\u002B)(\\)|;)/.exec(a);if(C)return/WebKit\\/(\\S\u002B)/.exec(a);if(y)return/(?:Version)[ \\/]?(\\S\u002B)/.exec(a)}();G\u0026\u0026(F=G?G[1]:\u0022\u0022);if(z){var H=D();if(null!=H\u0026\u0026H\u003EparseFloat(F)){E=String(H);break a}}E=F}var I;I=d.document\u0026\u0026z?D():void 0;var J=u(),K=w()||t(\u0022iPod\u0022),L=t(\u0022iPad\u0022),M=t(\u0022Android\u0022)\u0026\u0026!(v()||u()||t(\u0022Opera\u0022)||t(\u0022Silk\u0022)),N=v(),aa=t(\u0022Safari\u0022)\u0026\u0026!(v()||t(\u0022Coast\u0022)||t(\u0022Opera\u0022)||t(\u0022Edge\u0022)||t(\u0022Edg/\u0022)||t(\u0022OPR\u0022)||u()||t(\u0022Silk\u0022)||t(\u0022Android\u0022))\u0026\u0026!(w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022));function O(a){return(a=a.exec(p))?a[1]:\u0022\u0022}(function(){if(J)return O(/Firefox\\/([0-9.]\u002B)/);if(z||A||y)return E;if(N)return w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022)?O(/CriOS\\/([0-9.]\u002B)/):O(/Chrome\\/([0-9.]\u002B)/);if(aa\u0026\u0026!(w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022)))return O(/Version\\/([0-9.]\u002B)/);if(K||L){var a=/Version\\/(\\S\u002B).*Mobile\\/(\\S\u002B)/.exec(p);if(a)return a[1]\u002B\u0022.\u0022\u002Ba[2]}else if(M)return(a=O(/Android\\s\u002B([0-9.]\u002B)/))?a:O(/Version\\/([0-9.]\u002B)/);return\u0022\u0022})();var P=z\u0026\u0026!(8\u003C=Number(I)),ba=z\u0026\u0026!(9\u003C=Number(I));var ca={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},Q={IMG:\u0022 \u0022,BR:\u0022\\n\u0022};function R(a,b,c){if(!(a.nodeName in ca))if(3==a.nodeType)c?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\u0022\u0022)):b.push(a.nodeValue);else if(a.nodeName in Q)b.push(Q[a.nodeName]);else for(a=a.firstChild;a;)R(a,b,c),a=a.nextSibling};function S(a,b){b=b.toLowerCase();return\u0022style\u0022==b?da(a.style.cssText):P\u0026\u0026\u0022value\u0022==b\u0026\u0026T(a,\u0022INPUT\u0022)?a.value:ba\u0026\u0026!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))\u0026\u0026a.specified?a.value:null}var ea=/[;]\u002B(?=(?:(?:[^\u0022]*\u0022){2})*[^\u0022]*$)(?=(?:(?:[^\u0027]*\u0027){2})*[^\u0027]*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction da(a){var b=[];k(a.split(ea),function(c){var e=c.indexOf(\u0022:\u0022);0\u003Ce\u0026\u0026(c=[c.slice(0,e),c.slice(e\u002B1)],2==c.length\u0026\u0026b.push(c[0].toLowerCase(),\u0022:\u0022,c[1],\u0022;\u0022))});b=b.join(\u0022\u0022);return b=\u0022;\u0022==b.charAt(b.length-1)?b:b\u002B\u0022;\u0022}function U(a,b){P\u0026\u0026\u0022value\u0022==b\u0026\u0026T(a,\u0022OPTION\u0022)\u0026\u0026null===S(a,\u0022value\u0022)?(b=[],R(a,b,!1),a=b.join(\u0022\u0022)):a=a[b];return a}\nfunction T(a,b){b\u0026\u0026\u0022string\u0022!==typeof b\u0026\u0026(b=b.toString());return a instanceof HTMLFormElement?!!a\u0026\u00261==a.nodeType\u0026\u0026(!b||\u0022FORM\u0022==b):!!a\u0026\u00261==a.nodeType\u0026\u0026(!b||a.tagName.toUpperCase()==b)}function V(a){return T(a,\u0022OPTION\u0022)?!0:T(a,\u0022INPUT\u0022)?(a=a.type.toLowerCase(),\u0022checkbox\u0022==a||\u0022radio\u0022==a):!1};var fa={\u0022class\u0022:\u0022className\u0022,readonly:\u0022readOnly\u0022},ha=\u0022allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\u0022.split(\u0022 \u0022);function W(a,b){var c=null,e=b.toLowerCase();if(\u0022style\u0022==e)return(c=a.style)\u0026\u0026\u0022string\u0022!=typeof c\u0026\u0026(c=c.cssText),c;if((\u0022selected\u0022==e||\u0022checked\u0022==e)\u0026\u0026V(a)){if(!V(a))throw new l(15,\u0022Element is not selectable\u0022);b=\u0022selected\u0022;c=a.type\u0026\u0026a.type.toLowerCase();if(\u0022checkbox\u0022==c||\u0022radio\u0022==c)b=\u0022checked\u0022;return U(a,b)?\u0022true\u0022:null}var g=T(a,\u0022A\u0022);if(T(a,\u0022IMG\u0022)\u0026\u0026\u0022src\u0022==e||g\u0026\u0026\u0022href\u0022==e)return(c=S(a,e))\u0026\u0026(c=U(a,e)),c;if(\u0022spellcheck\u0022==e){c=S(a,e);if(null!==c){if(\u0022false\u0022==c.toLowerCase())return\u0022false\u0022;if(\u0022true\u0022==c.toLowerCase())return\u0022true\u0022}return U(a,\ne)\u002B\u0022\u0022}g=fa[b]||b;if(0\u003C=h(ha,e))return(c=null!==S(a,b)||U(a,g))?\u0022true\u0022:null;try{var x=U(a,g)}catch(ia){}(e=null==x)||(e=typeof x,e=\u0022object\u0022==e\u0026\u0026null!=x||\u0022function\u0022==e);e?c=S(a,b):c=x;return null!=c?c.toString():null}var X=[\u0022_\u0022],Y=d;X[0]in Y||\u0022undefined\u0022==typeof Y.execScript||Y.execScript(\u0022var \u0022\u002BX[0]);for(var Z;X.length\u0026\u0026(Z=X.shift());)X.length||void 0===W?Y[Z]\u0026\u0026Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=W;; return this._.apply(null,arguments);}).apply({navigator:typeof window!=\u0027undefined\u0027?window.navigator:null,document:typeof window!=\u0027undefined\u0027?window.document:null}, arguments);}\n).apply(null, arguments);","args":[{"element-6066-11e4-a52e-4f735466cecf":"f.B4CB0B3E884DB623FD1C472335A8FCE3.d.8C88064417FCFB628D8F468B26E1D3DC.e.7"},"type"]}
    3175:  00:25:36.782 TRACE HttpCommandExecutor: >> POST RequestUri: http://localhost:32979/session/9a32dc780ce818525fadf96cc6cc275f/execute/sync, Content: System.Net.Http.ByteArrayContent, Headers: 2
    3176:  {"script":"/* get-attribute */return (function(){return (function(){var d=this||self;function f(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a};var h=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(\u0022string\u0022===typeof a)return\u0022string\u0022!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c\u003Ca.length;c\u002B\u002B)if(c in a\u0026\u0026a[c]===b)return c;return-1},k=Array.prototype.forEach?function(a,b){Array.prototype.forEach.call(a,b,void 0)}:function(a,b){for(var c=a.length,e=\u0022string\u0022===typeof a?a.split(\u0022\u0022):a,g=0;g\u003Cc;g\u002B\u002B)g in e\u0026\u0026b.call(void 0,e[g],g,a)};function l(a,b){this.code=a;this.a=m[a]||n;this.message=b||\u0022\u0022;a=this.a.replace(/((?:^|\\s\u002B)[a-z])/g,function(c){return c.toUpperCase().replace(/^[\\s\\xa0]\u002B/g,\u0022\u0022)});b=a.length-5;if(0\u003Eb||a.indexOf(\u0022Error\u0022,b)!=b)a\u002B=\u0022Error\u0022;this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\u0022\u0022}f(l,Error);var n=\u0022unknown error\u0022,m={15:\u0022element not selectable\u0022,11:\u0022element not visible\u0022};m[31]=n;m[30]=n;m[24]=\u0022invalid cookie domain\u0022;m[29]=\u0022invalid element coordinates\u0022;m[12]=\u0022invalid element state\u0022;m[32]=\u0022invalid selector\u0022;\nm[51]=\u0022invalid selector\u0022;m[52]=\u0022invalid selector\u0022;m[17]=\u0022javascript error\u0022;m[405]=\u0022unsupported operation\u0022;m[34]=\u0022move target out of bounds\u0022;m[27]=\u0022no such alert\u0022;m[7]=\u0022no such element\u0022;m[8]=\u0022no such frame\u0022;m[23]=\u0022no such window\u0022;m[28]=\u0022script timeout\u0022;m[33]=\u0022session not created\u0022;m[10]=\u0022stale element reference\u0022;m[21]=\u0022timeout\u0022;m[25]=\u0022unable to set cookie\u0022;m[26]=\u0022unexpected alert open\u0022;m[13]=n;m[9]=\u0022unknown command\u0022;var p;a:{var q=d.navigator;if(q){var r=q.userAgent;if(r){p=r;break a}}p=\u0022\u0022}function t(a){return-1!=p.indexOf(a)};function u(){return t(\u0022Firefox\u0022)||t(\u0022FxiOS\u0022)}function v(){return(t(\u0022Chrome\u0022)||t(\u0022CriOS\u0022))\u0026\u0026!t(\u0022Edge\u0022)};function w(){return t(\u0022iPhone\u0022)\u0026\u0026!t(\u0022iPod\u0022)\u0026\u0026!t(\u0022iPad\u0022)};var y=t(\u0022Opera\u0022),z=t(\u0022Trident\u0022)||t(\u0022MSIE\u0022),A=t(\u0022Edge\u0022),B=t(\u0022Gecko\u0022)\u0026\u0026!(-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022))\u0026\u0026!(t(\u0022Trident\u0022)||t(\u0022MSIE\u0022))\u0026\u0026!t(\u0022Edge\u0022),C=-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022);function D(){var a=d.document;return a?a.documentMode:void 0}var E;\na:{var F=\u0022\u0022,G=function(){var a=p;if(B)return/rv:([^\\);]\u002B)(\\)|;)/.exec(a);if(A)return/Edge\\/([\\d\\.]\u002B)/.exec(a);if(z)return/\\b(?:MSIE|rv)[: ]([^\\);]\u002B)(\\)|;)/.exec(a);if(C)return/WebKit\\/(\\S\u002B)/.exec(a);if(y)return/(?:Version)[ \\/]?(\\S\u002B)/.exec(a)}();G\u0026\u0026(F=G?G[1]:\u0022\u0022);if(z){var H=D();if(null!=H\u0026\u0026H\u003EparseFloat(F)){E=String(H);break a}}E=F}var I;I=d.document\u0026\u0026z?D():void 0;var J=u(),K=w()||t(\u0022iPod\u0022),L=t(\u0022iPad\u0022),M=t(\u0022Android\u0022)\u0026\u0026!(v()||u()||t(\u0022Opera\u0022)||t(\u0022Silk\u0022)),N=v(),aa=t(\u0022Safari\u0022)\u0026\u0026!(v()||t(\u0022Coast\u0022)||t(\u0022Opera\u0022)||t(\u0022Edge\u0022)||t(\u0022Edg/\u0022)||t(\u0022OPR\u0022)||u()||t(\u0022Silk\u0022)||t(\u0022Android\u0022))\u0026\u0026!(w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022));function O(a){return(a=a.exec(p))?a[1]:\u0022\u0022}(function(){if(J)return O(/Firefox\\/([0-9.]\u002B)/);if(z||A||y)return E;if(N)return w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022)?O(/CriOS\\/([0-9.]\u002B)/):O(/Chrome\\/([0-9.]\u002B)/);if(aa\u0026\u0026!(w()||t(\u0022iPad\u0022)||t(\u0022iPod\u0022)))return O(/Version\\/([0-9.]\u002B)/);if(K||L){var a=/Version\\/(\\S\u002B).*Mobile\\/(\\S\u002B)/.exec(p);if(a)return a[1]\u002B\u0022.\u0022\u002Ba[2]}else if(M)return(a=O(/Android\\s\u002B([0-9.]\u002B)/))?a:O(/Version\\/([0-9.]\u002B)/);return\u0022\u0022})();var P=z\u0026\u0026!(8\u003C=Number(I)),ba=z\u0026\u0026!(9\u003C=Number(I));var ca={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},Q={IMG:\u0022 \u0022,BR:\u0022\\n\u0022};function R(a,b,c){if(!(a.nodeName in ca))if(3==a.nodeType)c?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,\u0022\u0022)):b.push(a.nodeValue);else if(a.nodeName in Q)b.push(Q[a.nodeName]);else for(a=a.firstChild;a;)R(a,b,c),a=a.nextSibling};function S(a,b){b=b.toLowerCase();return\u0022style\u0022==b?da(a.style.cssText):P\u0026\u0026\u0022value\u0022==b\u0026\u0026T(a,\u0022INPUT\u0022)?a.value:ba\u0026\u0026!0===a[b]?String(a.getAttribute(b)):(a=a.getAttributeNode(b))\u0026\u0026a.specified?a.value:null}var ea=/[;]\u002B(?=(?:(?:[^\u0022]*\u0022){2})*[^\u0022]*$)(?=(?:(?:[^\u0027]*\u0027){2})*[^\u0027]*$)(?=(?:[^()]*\\([^()]*\\))*[^()]*$)/;\nfunction da(a){var b=[];k(a.split(ea),function(c){var e=c.indexOf(\u0022:\u0022);0\u003Ce\u0026\u0026(c=[c.slice(0,e),c.slice(e\u002B1)],2==c.length\u0026\u0026b.push(c[0].toLowerCase(),\u0022:\u0022,c[1],\u0022;\u0022))});b=b.join(\u0022\u0022);return b=\u0022;\u0022==b.charAt(b.length-1)?b:b\u002B\u0022;\u0022}function U(a,b){P\u0026\u0026\u0022value\u0022==b\u0026\u0026T(a,\u0022OPTION\u0022)\u0026\u0026null===S(a,\u0022value\u0022)?(b=[],R(a,b,!1),a=b.join(\u0022\u0022)):a=a[b];return a}\nfunction T(a,b){b\u0026\u0026\u0022string\u0022!==typeof b\u0026\u0026(b=b.toString());return a instanceof HTMLFormElement?!!a\u0026\u00261==a.nodeType\u0026\u0026(!b||\u0022FORM\u0022==b):!!a\u0026\u00261==a.nodeType\u0026\u0026(!b||a.tagName.toUpperCase()==b)}function V(a){return T(a,\u0022OPTION\u0022)?!0:T(a,\u0022INPUT\u0022)?(a=a.type.toLowerCase(),\u0022checkbox\u0022==a||\u0022radio\u0022==a):!1};var fa={\u0022class\u0022:\u0022className\u0022,readonly:\u0022readOnly\u0022},ha=\u0022allowfullscreen allowpaymentrequest allowusermedia async autofocus autoplay checked compact complete controls declare default defaultchecked defaultselected defer disabled ended formnovalidate hidden indeterminate iscontenteditable ismap itemscope loop multiple muted nohref nomodule noresize noshade novalidate nowrap open paused playsinline pubdate readonly required reversed scoped seamless seeking selected truespeed typemustmatch willvalidate\u0022.split(\u0022 \u0022);function W(a,b){var c=null,e=b.toLowerCase();if(\u0022style\u0022==e)return(c=a.style)\u0026\u0026\u0022string\u0022!=typeof c\u0026\u0026(c=c.cssText),c;if((\u0022selected\u0022==e||\u0022checked\u0022==e)\u0026\u0026V(a)){if(!V(a))throw new l(15,\u0022Element is not selectable\u0022);b=\u0022selected\u0022;c=a.type\u0026\u0026a.type.toLowerCase();if(\u0022checkbox\u0022==c||\u0022radio\u0022==c)b=\u0022checked\u0022;return U(a,b)?\u0022true\u0022:null}var g=T(a,\u0022A\u0022);if(T(a,\u0022IMG\u0022)\u0026\u0026\u0022src\u0022==e||g\u0026\u0026\u0022href\u0022==e)return(c=S(a,e))\u0026\u0026(c=U(a,e)),c;if(\u0022spellcheck\u0022==e){c=S(a,e);if(null!==c){if(\u0022false\u0022==c.toLowerCase())return\u0022false\u0022;if(\u0022true\u0022==c.toLowerCase())return\u0022true\u0022}return U(a,\ne)\u002B\u0022\u0022}g=fa[b]||b;if(0\u003C=h(ha,e))return(c=null!==S(a,b)||U(a,g))?\u0022true\u0022:null;try{var x=U(a,g)}catch(ia){}(e=null==x)||(e=typeof x,e=\u0022object\u0022==e\u0026\u0026null!=x||\u0022function\u0022==e);e?c=S(a,b):c=x;return null!=c?c.toString():null}var X=[\u0022_\u0022],Y=d;X[0]in Y||\u0022undefined\u0022==typeof Y.execScript||Y.execScript(\u0022var \u0022\u002BX[0]);for(var Z;X.length\u0026\u0026(Z=X.shift());)X.length||void 0===W?Y[Z]\u0026\u0026Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=W;; return this._.apply(null,arguments);}).apply({navigator:typeof window!=\u0027undefined\u0027?window.navigator:null,document:typeof window!=\u0027undefined\u0027?window.document:null}, arguments);}\n).apply(null, arguments);","args":[{"element-6066-11e4-a52e-4f735466cecf":"f.B4CB0B3E884DB623FD1C472335A8FCE3.d.8C88064417FCFB628D8F468B26E1D3DC.e.7"},"type"]}
    ...
    
    3225:  => OpenQA.Selenium.ShadowRootHandlingTest
    3226:  Creating new driver of OpenQA.Selenium.Edge.StableChannelEdgeDriver type...
    3227:  => OpenQA.Selenium.AssemblyFixture
    3228:  00:25:37.111 DEBUG HttpCommandExecutor: Executing command: [9a32dc780ce818525fadf96cc6cc275f]: quit {}
    3229:  00:25:37.111 TRACE HttpCommandExecutor: >> DELETE RequestUri: http://localhost:32979/session/9a32dc780ce818525fadf96cc6cc275f, Content: null, Headers: 2
    3230:  00:25:37.167 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 1
    3231:  00:25:37.168 DEBUG HttpCommandExecutor: Response: ( Success: )
    3232:  Standalone jar is /mnt/engflow/worker/work/1/exec/bazel-out/k8-fastbuild-ST-d67017d35e85/bin/dotnet/test/common/ShadowRootHandlingTest-edge/net8.0/WebDriver.Common.Tests.dll.sh.runfiles/_main/java/test/org/openqa/selenium/environment/appserver 34167
    3233:  Errors, Failures and Warnings
    3234:  1) Failed : OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot
    3235:  Expected: instance of <OpenQA.Selenium.NoSuchShadowRootException>
    3236:  But was:  no exception thrown
    3237:  at OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot()
    3238:  Run Settings
    3239:  Number of Test Workers: 2
    3240:  Work Directory: /mnt/engflow/worker/work/1/exec/bazel-out/k8-fastbuild-ST-d67017d35e85/bin/dotnet/test/common/ShadowRootHandlingTest-edge/net8.0/WebDriver.Common.Tests.dll.sh.runfiles/_main
    3241:  Internal Trace: Off
    3242:  Test Run Summary
    3243:  Overall result: Failed
    3244:  Test Count: 5, Passed: 4, Failed: 1, Warnings: 0, Inconclusive: 0, Skipped: 0
    3245:  Failed Tests - Failures: 1, Errors: 0, Invalid: 0
    3246:  Start time: 2024-11-22 00:25:31Z
    3247:  End time: 2024-11-22 00:25:38Z
    3248:  Duration: 6.715 seconds
    3249:  Results (nunit3) saved as /mnt/engflow/worker/work/1/exec/bazel-out/k8-fastbuild-ST-d67017d35e85/bin/dotnet/test/common/ShadowRootHandlingTest-edge/net8.0/WebDriver.Common.Tests.dll.sh.runfiles/_main/TestResult.xml
    3250:  Execution result: https://gypsum.cluster.engflow.com/actions/executions/ChCgHfMQ0UNCiqLjEC0JFA-PEgdkZWZhdWx0GiUKIJaJxWrPaKfOr3F_-LeUu-knqGiI7pTTwTGCAhFs4hK4EJ8D
    3251:  ================================================================================
    3252:  (00:26:16) �[32m[14,456 / 15,331]�[0m 959 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 128s remote, remote-cache ... (50 actions, 29 running)
    3253:  (00:26:21) �[32m[14,461 / 15,332]�[0m 963 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 133s remote, remote-cache ... (50 actions, 27 running)
    3254:  (00:26:27) �[32m[14,464 / 15,335]�[0m 964 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 139s remote, remote-cache ... (50 actions, 28 running)
    3255:  (00:26:33) �[32m[14,468 / 15,336]�[0m 967 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 145s remote, remote-cache ... (50 actions, 29 running)
    3256:  (00:26:38) �[32m[14,470 / 15,336]�[0m 969 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 150s remote, remote-cache ... (50 actions, 31 running)
    3257:  (00:26:44) �[32m[14,471 / 15,336]�[0m 970 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 156s remote, remote-cache ... (50 actions, 33 running)
    3258:  (00:26:50) �[32m[14,477 / 15,336]�[0m 976 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 162s remote, remote-cache ... (50 actions, 35 running)
    3259:  (00:26:55) �[32m[14,482 / 15,338]�[0m 981 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 167s remote, remote-cache ... (50 actions, 37 running)
    3260:  (00:27:00) �[32m[14,490 / 15,338]�[0m 987 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 172s remote, remote-cache ... (50 actions, 36 running)
    3261:  (00:27:05) �[32m[14,494 / 15,338]�[0m 991 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 177s remote, remote-cache ... (50 actions, 34 running)
    3262:  (00:27:11) �[32m[14,496 / 15,340]�[0m 992 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 182s remote, remote-cache ... (50 actions, 35 running)
    3263:  (00:27:16) �[32m[14,501 / 15,341]�[0m 996 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:BiDi/BrowsingContext/BrowsingContextTest-firefox; 188s remote, remote-cache ... (50 actions, 34 running)
    3264:  (00:27:21) �[32m[14,512 / 15,341]�[0m 1008 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 78s remote, remote-cache ... (50 actions, 30 running)
    3265:  (00:27:27) �[32m[14,521 / 15,343]�[0m 1015 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 84s remote, remote-cache ... (50 actions, 28 running)
    3266:  (00:27:33) �[32m[14,525 / 15,345]�[0m 1017 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 90s remote, remote-cache ... (50 actions, 31 running)
    3267:  (00:27:38) �[32m[14,534 / 15,345]�[0m 1026 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 95s remote, remote-cache ... (50 actions, 25 running)
    3268:  (00:27:45) �[32m[14,542 / 15,347]�[0m 1030 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 102s remote, remote-cache ... (50 actions, 26 running)
    3269:  (00:27:50) �[32m[14,545 / 15,349]�[0m 1032 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 107s remote, remote-cache ... (50 actions, 27 running)
    3270:  (00:27:55) �[32m[14,552 / 15,351]�[0m 1037 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 112s remote, remote-cache ... (50 actions, 32 running)
    3271:  (00:28:00) �[32m[14,559 / 15,357]�[0m 1040 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 117s remote, remote-cache ... (50 actions, 34 running)
    3272:  (00:28:06) �[32m[14,570 / 15,360]�[0m 1047 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 122s remote, remote-cache ... (50 actions, 34 running)
    3273:  (00:28:11) �[32m[14,586 / 15,362]�[0m 1061 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UnexpectedAlertBehaviorTest-firefox; 128s remote, remote-cache ... (50 actions, 33 running)
    3274:  (00:28:16) �[32m[14,597 / 15,366]�[0m 1068 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:SessionHandlingTest-chrome; 68s remote, remote-cache ... (50 actions, 32 running)
    3275:  (00:28:21) �[32m[14,602 / 15,367]�[0m 1072 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:SessionHandlingTest-chrome; 73s remote, remote-cache ... (50 actions, 32 running)
    3276:  (00:28:22) �[31m�[1mFAIL: �[0m//dotnet/test/common:ShadowRootHandlingTest-chrome (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild-ST-d67017d35e85/testlogs/dotnet/test/common/ShadowRootHandlingTest-chrome/test_attempts/attempt_1.log)
    3277:  (00:28:26) �[32m[14,613 / 15,369]�[0m 1082 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:CorrectEventFiringTest-firefox; 50s remote, remote-cache ... (50 actions, 31 running)
    3278:  (00:28:32) �[32m[14,622 / 15,373]�[0m 1087 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:CorrectEventFiringTest-firefox; 55s remote, remote-cache ... (50 actions, 33 running)
    3279:  (00:28:37) �[32m[14,637 / 15,376]�[0m 1098 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:CorrectEventFiringTest-firefox; 61s remote, remote-cache ... (50 actions, 25 running)
    3280:  (00:28:42) �[32m[14,646 / 15,382]�[0m 1101 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:CorrectEventFiringTest-firefox; 66s remote, remote-cache ... (50 actions, 26 running)
    3281:  (00:28:47) �[32m[14,656 / 15,388]�[0m 1108 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UploadTest-firefox; 52s remote, remote-cache ... (50 actions, 24 running)
    3282:  (00:28:53) �[32m[14,662 / 15,406]�[0m 1112 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UploadTest-firefox; 58s remote, remote-cache ... (49 actions, 26 running)
    3283:  (00:28:58) �[32m[14,673 / 15,483]�[0m 1116 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UploadTest-firefox; 63s remote, remote-cache ... (50 actions, 29 running)
    3284:  (00:29:03) �[32m[14,679 / 15,488]�[0m 1118 / 2148 tests, �[31m�[1m1 failed�[0m;�[0m Testing //dotnet/test/common:UploadTest-firefox; 68s remote, remote-cache ... (50 actions, 34 running)
    3285:  (00:29:06) �[31m�[1mFAIL: �[0m//dotnet/test/common:ShadowRootHandlingTest-chrome (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild-ST-d67017d35e85/testlogs/dotnet/test/common/ShadowRootHandlingTest-chrome/test.log)
    3286:  �[31m�[1mFAILED: �[0m//dotnet/test/common:ShadowRootHandlingTest-chrome (Summary)
    ...
    
    3344:  00:28:20.086 TRACE HttpCommandExecutor: >> GET RequestUri: http://localhost:46547/session/ed1db4bffa3b30737b1a026b9224e2d8/element/f.6085D9DE97D157AD1D9DA014AC4B8ACB.d.5AB1866AF977B4770022AAEE0CF2EC89.e.9/shadow, Content: null, Headers: 3
    3345:  00:28:20.091 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 1
    3346:  00:28:20.092 DEBUG HttpCommandExecutor: Response: ( Success: System.Collections.Generic.Dictionary`2[System.String,System.Object])
    3347:  00:28:20.093 DEBUG HttpCommandExecutor: Executing command: [ed1db4bffa3b30737b1a026b9224e2d8]: findShadowChildElement {"id":"f.6085D9DE97D157AD1D9DA014AC4B8ACB.d.5AB1866AF977B4770022AAEE0CF2EC89.e.10","using":"css selector","value":"input"}
    3348:  00:28:20.093 TRACE HttpCommandExecutor: >> POST RequestUri: http://localhost:46547/session/ed1db4bffa3b30737b1a026b9224e2d8/shadow/f.6085D9DE97D157AD1D9DA014AC4B8ACB.d.5AB1866AF977B4770022AAEE0CF2EC89.e.10/element, Content: System.Net.Http.ByteArrayContent, Headers: 2
    3349:  {"using":"css selector","value":"input"}
    3350:  00:28:20.116 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 1
    3351:  00:28:20.116 DEBUG HttpCommandExecutor: Response: ( Success: System.Collections.Generic.Dictionary`2[System.String,System.Object])
    3352:  00:28:20.119 DEBUG HttpCommandExecutor: Executing command: [ed1db4bffa3b30737b1a026b9224e2d8]: executeScript {"script":"/* get-attribute */return (function(){return (function(){var d=this||self;function f(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a};var h=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(\u0022string\u0022===typeof a)return\u0022string\u0022!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c\u003Ca.length;c\u002B\u002B)if(c in a\u0026\u0026a[c]===b)return c;return-1},k=Array.prototype.forEach?function(a,b){Array.prototype.forEach.call(a,b,void 0)}:function(a,b){for(var c=a.length,e=\u0022string\u0022===typeof a?a.split(\u0022\u0022):a,g=0;g\u003Cc;g\u002B\u002B)g in e\u0026\u0026b.call(void 0,e[g],g,a)};function l(a,b){this.code=a;this.a=m[a]||n;this.message=b||\u0022\u0022;a=this.a.replace(/((?:^|\\s\u002B)[a-z])/g,function(c){return c.toUpperCase().replace(/^[\\s\\xa0]\u002B/g,\u0022\u0022)});b=a.length-5;if(0\u003Eb||a.indexOf(\u0022Error\u0022,b)!=b)a\u002B=\u0022Error\u0022;this.name=a;a=Error(this.message);a.name=this.name;this.stack=a.stack||\u0022\u0022}f(l,Error);var n=\u0022unknown error\u0022,m={15:\u0022element not selectable\u0022,11:\u0022element not visible\u0022};m[31]=n;m[30]=n;m[24]=\u0022invalid cookie domain\u0022;m[29]=\u0022invalid element coordinates\u0022;m[12]=\u0022invalid element state\u0022;m[32]=\u0022invalid selector\u0022;\nm[51]=\u0022invalid selector\u0022;m[52]=\u0022invalid selector\u0022;m[17]=\u0022javascript error\u0022;m[405]=\u0022unsupported operation\u0022;m[34]=\u0022move target out of bounds\u0022;m[27]=\u0022no such alert\u0022;m[7]=\u0022no such element\u0022;m[8]=\u0022no such frame\u0022;m[23]=\u0022no such window\u0022;m[28]=\u0022script timeout\u0022;m[33]=\u0022session not created\u0022;m[10]=\u0022stale element reference\u0022;m[21]=\u0022timeout\u0022;m[25]=\u0022unable to set cookie\u0022;m[26]=\u0022unexpected alert open\u0022;m[13]=n;m[9]=\u0022unknown command\u0022;var p;a:{var q=d.navigator;if(q){var r=q.userAgent;if(r){p=r;break a}}p=\u0022\u0022}function t(a){return-1!=p.indexOf(a)};function u(){return t(\u0022Firefox\u0022)||t(\u0022FxiOS\u0022)}function v(){return(t(\u0022Chrome\u0022)||t(\u0022CriOS\u0022))\u0026\u0026!t(\u0022Edge\u0022)};function w(){return t(\u0022iPhone\u0022)\u0026\u0026!t(\u0022iPod\u0022)\u0026\u0026!t(\u0022iPad\u0022)};var y=t(\u0022Opera\u0022),z=t(\u0022Trident\u0022)||t(\u0022MSIE\u0022),A=t(\u0022Edge\u0022),B=t(\u0022Gecko\u0022)\u0026\u0026!(-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022))\u0026\u0026!(t(\u0022Trident\u0022)||t(\u0022MSIE\u0022))\u0026\u0026!t(\u0022Edge\u0022),C=-1!=p.toLowerCase().indexOf(\u0022webkit\u0022)\u0026\u0026!t(\u0022Edge\u0022);function D(){var a=d.document;return a?a.documentMode:void 0}var E;\na:{var F=\u0022\u0022,G=function(){var a=p;if(B)return/rv:([^\\);]\u002B)(\\)|;)/.exec(a);if(A)return/Edge\\/([\\d\\.]\u002B)/.exec(a);if(z)return/\\b(?:MSIE|rv)[: ]([^\\);]\u002B)(\\)|;)/.exec(a);if(C)return/WebKit\\/(\\S\u002B)/.exec(a);if(y)return/(?:Version)[ \\/]?(\\S\u002B)/.exec(a)}();G\u0026\u0026(F=G?G[1]:\u0022\u0022);if(z){var H=D();if(null!=H\u0026\u0026H\u003EparseFloat(F)){E=String(H);break a}}E=F}var I;I=d.document\u0026\u0026z?D():void 0;var J=u(),K=w()||t(\u0022iPod\u0022),L=t(\u0022iPad\u0022),M=t(\u0022Android\u0022)\u0026\u0026!(v()||u()||t(\u0022Opera\u0022)||t(\u0022Silk\u0022)),N=v(),aa=t(\u0022Safari\u0022)\u0026\u0026!(v()||t(\u0022Coast\u0022)||t(\u0022Opera\u0022)||t(\u0022Edge\u0022)||t(\u0022Edg/\u0022)||t(\u...

    @shs96c
    Copy link
    Member

    shs96c commented Jul 11, 2024

    With this change, what happens to the stacktraces that are sent from the remote end? The ErrorHandler deserialised those and made them available as the root cause of a WebDriverException that was thrown.

    @joerg1985
    Copy link
    Member Author

    @shs96c i do not think decoding of stacktraces is working at all:

    1. The response will be decoded by the W3CHttpResponseCodec before the ErrorHandler will be called. The ErrorHandler will only see the decoded Throwable in the response.getValue and raise the Throwable without adding the stack.

    2. The decoding part does look for class and stackTrace (see first lines of rebuildServerError) and the encoding code (by the ErrorFilter using the ErrorCodec) does not set class and uses stacktrace (lowercase T) for the stack. The webdrivers should not set them too, so the code inside rebuildServerError should not be reached.

    3. The ErrorHandler does expect a List<Map<String, Object>> inside the stackTrace to decode it. The value of stacktrace is a String, so this is not only a typo and there is no easy way to use the old code.

    Therefore i think it is safe to remove this code.

    @joerg1985 joerg1985 requested a review from diemol November 7, 2024 19:36
    @VietND96 VietND96 added the R-awaiting merge PR depends on another PR for merging label Nov 12, 2024
    Copy link
    Contributor

    qodo-merge-pro bot commented Mar 14, 2025

    CI Feedback 🧐

    (Feedback updated until commit f3930a8)

    A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

    Action: Python / Browser Tests (edge, ubuntu) / Integration Tests (edge, ubuntu)

    Failed stage: Run Bazel [❌]

    Failed test name: test_collect_log_mutations[edge]

    Failure summary:

    The action failed because the test test_collect_log_mutations[edge] in the
    py/test/selenium/webdriver/common/bidi_tests.py file failed. The test failed with a KeyError:
    'Page.frameStartedNavigating', indicating that the test was trying to access an event parser for a
    method that doesn't exist in the current implementation. This suggests an incompatibility between
    the Edge browser's BiDi (Bidirectional) protocol implementation and the Selenium code that's trying
    to handle these events.

    Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    931:  Package 'php-symfony-asset' is not installed, so not removed
    932:  Package 'php-symfony-asset-mapper' is not installed, so not removed
    933:  Package 'php-symfony-browser-kit' is not installed, so not removed
    934:  Package 'php-symfony-clock' is not installed, so not removed
    935:  Package 'php-symfony-debug-bundle' is not installed, so not removed
    936:  Package 'php-symfony-doctrine-bridge' is not installed, so not removed
    937:  Package 'php-symfony-dom-crawler' is not installed, so not removed
    938:  Package 'php-symfony-dotenv' is not installed, so not removed
    939:  Package 'php-symfony-error-handler' is not installed, so not removed
    ...
    
    1125:  Package 'php-uopz-all-dev' is not installed, so not removed
    1126:  Package 'php8.3-uploadprogress' is not installed, so not removed
    1127:  Package 'php-uploadprogress-all-dev' is not installed, so not removed
    1128:  Package 'php8.3-uuid' is not installed, so not removed
    1129:  Package 'php-uuid-all-dev' is not installed, so not removed
    1130:  Package 'php-validate' is not installed, so not removed
    1131:  Package 'php-vlucas-phpdotenv' is not installed, so not removed
    1132:  Package 'php-voku-portable-ascii' is not installed, so not removed
    1133:  Package 'php-wmerrors' is not installed, so not removed
    ...
    
    1655:  Received 55563607 of 55563607 (100.0%), 73.7 MBs/sec
    1656:  Cache Size: ~53 MB (55563607 B)
    1657:  [command]/usr/bin/tar -xf /home/runner/work/_temp/93c51f79-25ee-4527-a55f-525fab9ba3ba/cache.tzst -P -C /home/runner/work/selenium/selenium --use-compress-program unzstd
    1658:  Cache restored successfully
    1659:  Successfully restored cache from setup-bazel-2-linux-bazelisk-f5f884b6af011b7b5194329ff462343da417842d8de319f232cfbf477f444994
    1660:  ##[endgroup]
    1661:  ##[group]Restore cache for disk-py-browser-edge
    1662:  ##[warning]Cache not found for keys: setup-bazel-2-linux-disk-py-browser-edge-fc8a006f34cad2b011bbafbe6932002d849a06126e23d164cf86519ca4a3289a, setup-bazel-2-linux-disk-py-browser-edge-
    1663:  Failed to restore disk-py-browser-edge cache
    ...
    
    1667:  Received 31424685 of 31424685 (100.0%), 37.7 MBs/sec
    1668:  Cache Size: ~30 MB (31424685 B)
    1669:  [command]/usr/bin/tar -xf /home/runner/work/_temp/4ee4b987-a216-497c-b888-46b9f90760ca/cache.tzst -P -C /home/runner/work/selenium/selenium --use-compress-program unzstd
    1670:  Cache restored successfully
    1671:  Successfully restored cache from setup-bazel-2-linux-repository-ee6997f60d3380c07a4eedaccfa226adc972d3f85dd690054901daec4d687838
    1672:  ##[endgroup]
    1673:  ##[group]Restore cache for external-py-browser-edge-manifest
    1674:  ##[warning]Cache not found for keys: setup-bazel-2-linux-external-py-browser-edge-manifest-ee6997f60d3380c07a4eedaccfa226adc972d3f85dd690054901daec4d687838, setup-bazel-2-linux-external-py-browser-edge-manifest-
    1675:  Failed to restore external-py-browser-edge-manifest cache
    ...
    
    1944:  Setting up feh (3.10.1-1ubuntu0.1) ...
    1945:  Processing triggers for libgdk-pixbuf-2.0-0:amd64 (2.42.10+dfsg-3ubuntu3.1) ...
    1946:  Processing triggers for install-info (7.1-3build2) ...
    1947:  Processing triggers for fontconfig (2.15.0-1.1ubuntu2) ...
    1948:  Processing triggers for hicolor-icon-theme (0.17-2) ...
    1949:  Processing triggers for libc-bin (2.39-0ubuntu8.4) ...
    1950:  Processing triggers for man-db (2.12.0-4build2) ...
    1951:  Processing triggers for menu (2.1.50) ...
    1952:  /usr/share/menu/dash: 1: Syntax error: word unexpected (expecting ")")
    1953:  /usr/share/menu/google-chrome.menu: 1: Syntax error: word unexpected (expecting ")")
    1954:  /usr/share/menu/bc: 1: Syntax error: word unexpected (expecting ")")
    1955:  /usr/share/menu/microsoft-edge.menu: 1: Syntax error: word unexpected (expecting ")")
    1956:  /usr/share/menu/bash: 1: Syntax error: word unexpected (expecting ")")
    1957:  Setting up fluxbox (1.3.7-1build2) ...
    1958:  update-alternatives: using /usr/bin/startfluxbox to provide /usr/bin/x-window-manager (x-window-manager) in auto mode
    1959:  Processing triggers for menu (2.1.50) ...
    1960:  /usr/share/menu/dash: 1: Syntax error: word unexpected (expecting ")")
    1961:  /usr/share/menu/google-chrome.menu: 1: Syntax error: word unexpected (expecting ")")
    1962:  /usr/share/menu/bc: 1: Syntax error: word unexpected (expecting ")")
    1963:  /usr/share/menu/microsoft-edge.menu: 1: Syntax error: word unexpected (expecting ")")
    1964:  /usr/share/menu/bash: 1: Syntax error: word unexpected (expecting ")")
    1965:  Running kernel seems to be up-to-date.
    1966:  No services need to be restarted.
    1967:  No containers need to be restarted.
    1968:  No user sessions are running outdated binaries.
    1969:  No VM guests are running outdated hypervisor (qemu) binaries on this host.
    1970:  Warning: Failed to open file(fluxbox.cat)
    ...
    
    1982:  > Warning:          Could not resolve keysym XF86FishingChart
    1983:  > Warning:          Could not resolve keysym XF86SingleRangeRadar
    1984:  > Warning:          Could not resolve keysym XF86DualRangeRadar
    1985:  > Warning:          Could not resolve keysym XF86RadarOverlay
    1986:  > Warning:          Could not resolve keysym XF86TraditionalSonar
    1987:  > Warning:          Could not resolve keysym XF86ClearvuSonar
    1988:  > Warning:          Could not resolve keysym XF86SidevuSonar
    1989:  > Warning:          Could not resolve keysym XF86NavInfo
    1990:  Errors from xkbcomp are not fatal to the X server
    1991:  Failed to read: session.ignoreBorder
    1992:  Setting default value
    1993:  Failed to read: session.forcePseudoTransparency
    1994:  Setting default value
    1995:  Failed to read: session.colorsPerChannel
    1996:  Setting default value
    1997:  Failed to read: session.doubleClickInterval
    1998:  Setting default value
    1999:  Failed to read: session.tabPadding
    2000:  Setting default value
    2001:  Failed to read: session.styleOverlay
    2002:  Setting default value
    2003:  Failed to read: session.slitlistFile
    2004:  Setting default value
    2005:  Failed to read: session.appsFile
    2006:  Setting default value
    2007:  Failed to read: session.tabsAttachArea
    2008:  Setting default value
    2009:  Failed to read: session.menuSearch
    2010:  Setting default value
    2011:  Failed to read: session.cacheLife
    2012:  Setting default value
    2013:  Failed to read: session.cacheMax
    2014:  Setting default value
    2015:  Failed to read: session.autoRaiseDelay
    2016:  Setting default value
    2017:  Failed to read: session.ignoreBorder
    2018:  Setting default value
    2019:  Failed to read: session.forcePseudoTransparency
    2020:  Setting default value
    2021:  Failed to read: session.colorsPerChannel
    2022:  Setting default value
    2023:  Failed to read: session.doubleClickInterval
    2024:  Setting default value
    2025:  Failed to read: session.tabPadding
    2026:  Setting default value
    2027:  Failed to read: session.styleOverlay
    2028:  Setting default value
    2029:  Failed to read: session.slitlistFile
    2030:  Setting default value
    2031:  Failed to read: session.appsFile
    2032:  Setting default value
    2033:  Failed to read: session.tabsAttachArea
    2034:  Setting default value
    2035:  Failed to read: session.menuSearch
    2036:  Setting default value
    2037:  Failed to read: session.cacheLife
    2038:  Setting default value
    2039:  Failed to read: session.cacheMax
    2040:  Setting default value
    2041:  Failed to read: session.autoRaiseDelay
    2042:  Setting default value
    2043:  Failed to read: session.screen0.opaqueMove
    2044:  Setting default value
    2045:  Failed to read: session.screen0.fullMaximization
    2046:  Setting default value
    2047:  Failed to read: session.screen0.maxIgnoreIncrement
    2048:  Setting default value
    2049:  Failed to read: session.screen0.maxDisableMove
    2050:  Setting default value
    2051:  Failed to read: session.screen0.maxDisableResize
    2052:  Setting default value
    2053:  Failed to read: session.screen0.workspacewarping
    2054:  Setting default value
    2055:  Failed to read: session.screen0.showwindowposition
    2056:  Setting default value
    2057:  Failed to read: session.screen0.autoRaise
    2058:  Setting default value
    2059:  Failed to read: session.screen0.clickRaises
    2060:  Setting default value
    2061:  Failed to read: session.screen0.defaultDeco
    2062:  Setting default value
    2063:  Failed to read: session.screen0.tab.placement
    2064:  Setting default value
    2065:  Failed to read: session.screen0.windowMenu
    2066:  Setting default value
    2067:  Failed to read: session.screen0.noFocusWhileTypingDelay
    2068:  Setting default value
    2069:  Failed to read: session.screen0.workspaces
    2070:  Setting default value
    2071:  Failed to read: session.screen0.edgeSnapThreshold
    2072:  Setting default value
    2073:  Failed to read: session.screen0.window.focus.alpha
    2074:  Setting default value
    2075:  Failed to read: session.screen0.window.unfocus.alpha
    2076:  Setting default value
    2077:  Failed to read: session.screen0.menu.alpha
    2078:  Setting default value
    2079:  Failed to read: session.screen0.menuDelay
    2080:  Setting default value
    2081:  Failed to read: session.screen0.tab.width
    2082:  Setting default value
    2083:  Failed to read: session.screen0.tooltipDelay
    2084:  Setting default value
    2085:  Failed to read: session.screen0.allowRemoteActions
    2086:  Setting default value
    2087:  Failed to read: session.screen0.clientMenu.usePixmap
    2088:  Setting default value
    2089:  Failed to read: session.screen0.tabs.usePixmap
    2090:  Setting default value
    2091:  Failed to read: session.screen0.tabs.maxOver
    2092:  Setting default value
    2093:  Failed to read: session.screen0.tabs.intitlebar
    2094:  Setting default value
    2095:  Failed to read: session.screen0.focusModel
    2096:  Setting default value
    2097:  Failed to read: session.screen0.tabFocusModel
    2098:  Setting default value
    2099:  Failed to read: session.screen0.focusNewWindows
    2100:  Setting default value
    2101:  Failed to read: session.screen0.focusSameHead
    2102:  Setting default value
    2103:  Failed to read: session.screen0.rowPlacementDirection
    2104:  Setting default value
    2105:  Failed to read: session.screen0.colPlacementDirection
    2106:  Setting default value
    2107:  Failed to read: session.screen0.windowPlacement
    2108:  Setting default value
    2109:  Failed to read: session.ignoreBorder
    2110:  Setting default value
    2111:  Failed to read: session.forcePseudoTransparency
    2112:  Setting default value
    2113:  Failed to read: session.colorsPerChannel
    2114:  Setting default value
    2115:  Failed to read: session.doubleClickInterval
    2116:  Setting default value
    2117:  Failed to read: session.tabPadding
    2118:  Setting default value
    2119:  Failed to read: session.styleOverlay
    2120:  Setting default value
    2121:  Failed to read: session.slitlistFile
    2122:  Setting default value
    2123:  Failed to read: session.appsFile
    2124:  Setting default value
    2125:  Failed to read: session.tabsAttachArea
    2126:  Setting default value
    2127:  Failed to read: session.menuSearch
    2128:  Setting default value
    2129:  Failed to read: session.cacheLife
    2130:  Setting default value
    2131:  Failed to read: session.cacheMax
    2132:  Setting default value
    2133:  Failed to read: session.autoRaiseDelay
    2134:  Setting default value
    2135:  Failed to read: session.screen0.opaqueMove
    2136:  Setting default value
    2137:  Failed to read: session.screen0.fullMaximization
    2138:  Setting default value
    2139:  Failed to read: session.screen0.maxIgnoreIncrement
    2140:  Setting default value
    2141:  Failed to read: session.screen0.maxDisableMove
    2142:  Setting default value
    2143:  Failed to read: session.screen0.maxDisableResize
    2144:  Setting default value
    2145:  Failed to read: session.screen0.workspacewarping
    2146:  Setting default value
    2147:  Failed to read: session.screen0.showwindowposition
    2148:  Setting default value
    2149:  Failed to read: session.screen0.autoRaise
    2150:  Setting default value
    2151:  Failed to read: session.screen0.clickRaises
    2152:  Setting default value
    2153:  Failed to read: session.screen0.defaultDeco
    2154:  Setting default value
    2155:  Failed to read: session.screen0.tab.placement
    2156:  Setting default value
    2157:  Failed to read: session.screen0.windowMenu
    2158:  Setting default value
    2159:  Failed to read: session.screen0.noFocusWhileTypingDelay
    2160:  Setting default value
    2161:  Failed to read: session.screen0.workspaces
    2162:  Setting default value
    2163:  Failed to read: session.screen0.edgeSnapThreshold
    2164:  Setting default value
    2165:  Failed to read: session.screen0.window.focus.alpha
    2166:  Setting default value
    2167:  Failed to read: session.screen0.window.unfocus.alpha
    2168:  Setting default value
    2169:  Failed to read: session.screen0.menu.alpha
    2170:  Setting default value
    2171:  Failed to read: session.screen0.menuDelay
    2172:  Setting default value
    2173:  Failed to read: session.screen0.tab.width
    2174:  Setting default value
    2175:  Failed to read: session.screen0.tooltipDelay
    2176:  Setting default value
    2177:  Failed to read: session.screen0.allowRemoteActions
    2178:  Setting default value
    2179:  Failed to read: session.screen0.clientMenu.usePixmap
    2180:  Setting default value
    2181:  Failed to read: session.screen0.tabs.usePixmap
    2182:  Setting default value
    2183:  Failed to read: session.screen0.tabs.maxOver
    2184:  Setting default value
    2185:  Failed to read: session.screen0.tabs.intitlebar
    2186:  Setting default value
    2187:  Failed to read: session.screen0.focusModel
    2188:  Setting default value
    2189:  Failed to read: session.screen0.tabFocusModel
    2190:  Setting default value
    2191:  Failed to read: session.screen0.focusNewWindows
    2192:  Setting default value
    2193:  Failed to read: session.screen0.focusSameHead
    2194:  Setting default value
    2195:  Failed to read: session.screen0.rowPlacementDirection
    2196:  Setting default value
    2197:  Failed to read: session.screen0.colPlacementDirection
    2198:  Setting default value
    2199:  Failed to read: session.screen0.windowPlacement
    2200:  Setting default value
    2201:  Failed to read: session.screen0.slit.acceptKdeDockapps
    2202:  Setting default value
    2203:  Failed to read: session.screen0.slit.autoHide
    2204:  Setting default value
    2205:  Failed to read: session.screen0.slit.maxOver
    2206:  Setting default value
    2207:  Failed to read: session.screen0.slit.placement
    2208:  Setting default value
    2209:  Failed to read: session.screen0.slit.alpha
    2210:  Setting default value
    2211:  Failed to read: session.screen0.slit.onhead
    2212:  Setting default value
    2213:  Failed to read: session.screen0.slit.layer
    2214:  Setting default value
    2215:  Failed to read: session.screen0.toolbar.autoHide
    2216:  Setting default value
    2217:  Failed to read: session.screen0.toolbar.maxOver
    2218:  Setting default value
    2219:  Failed to read: session.screen0.toolbar.visible
    2220:  Setting default value
    2221:  Failed to read: session.screen0.toolbar.alpha
    2222:  Setting default value
    2223:  Failed to read: session.screen0.toolbar.layer
    2224:  Setting default value
    2225:  Failed to read: session.screen0.toolbar.onhead
    2226:  Setting default value
    2227:  Failed to read: session.screen0.toolbar.placement
    2228:  Setting default value
    2229:  Failed to read: session.screen0.toolbar.height
    2230:  Setting default value
    2231:  Failed to read: session.screen0.iconbar.mode
    2232:  Setting default value
    2233:  Failed to read: session.screen0.iconbar.alignment
    2234:  Setting default value
    2235:  Failed to read: session.screen0.iconbar.iconWidth
    2236:  Setting default value
    2237:  Failed to read: session.screen0.iconbar.iconTextPadding
    2238:  Setting default value
    2239:  Failed to read: session.screen0.iconbar.usePixmap
    ...
    
    2757:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/py/common-edge-bidi-test/selenium/webdriver/common/element_equality_tests.py/test_attempts/attempt_1.log
    2758:  ============================= test session starts ==============================
    2759:  �[32mINFO: �[0mFrom Testing //py:common-edge-bidi-test/selenium/webdriver/common/element_equality_tests.py:
    2760:  platform linux -- Python 3.9.21, pytest-7.4.4, pluggy-1.3.0
    2761:  rootdir: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/element_equality_tests.py.runfiles/_main/py
    2762:  configfile: pyproject.toml
    2763:  plugins: instafail-0.5.0, trio-0.8.0, mock-3.12.0
    2764:  collected 3 items
    2765:  py/test/selenium/webdriver/common/element_equality_tests.py::test_same_element_looked_up_different_ways_should_be_equal[edge] ERROR [ 33%]
    2766:  _ ERROR at setup of test_same_element_looked_up_different_ways_should_be_equal[edge] _
    ...
    
    2813:  Data to send in the request body, either :class:`str`, :class:`bytes`,
    2814:  an iterable of :class:`str`/:class:`bytes`, or a file-like object.
    2815:  :param headers:
    2816:  Dictionary of custom headers to send, such as User-Agent,
    2817:  If-None-Match, etc. If None, pool headers are used. If provided,
    2818:  these headers completely replace any pool-specific headers.
    2819:  :param retries:
    2820:  Configure the number of retries to allow before raising a
    2821:  :class:`~urllib3.exceptions.MaxRetryError` exception.
    2822:  Pass ``None`` to retry until you receive a response. Pass a
    2823:  :class:`~urllib3.util.retry.Retry` object for fine-grained control
    2824:  over different types of retries.
    2825:  Pass an integer number to retry connection errors that many times,
    2826:  but no other types of errors. Pass zero to never retry.
    2827:  If ``False``, then retries are disabled and any exception is raised
    2828:  immediately. Also, instead of raising a MaxRetryError on redirects,
    2829:  the redirect response will be returned.
    2830:  :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.
    2831:  :param redirect:
    2832:  If True, automatically handle redirects (status codes 301, 302,
    2833:  303, 307, 308). Each redirect counts as a retry. Disabling retries
    2834:  will disable redirect, too.
    2835:  :param assert_same_host:
    2836:  If ``True``, will make sure that the host of the pool requests is
    2837:  consistent else will raise HostChangedError. When ``False``, you can
    2838:  use the pool on an HTTP proxy and request foreign hosts.
    2839:  :param timeout:
    2840:  If specified, overrides the default timeout for this one
    2841:  request. It may be a float (in seconds) or an instance of
    2842:  :class:`urllib3.util.Timeout`.
    2843:  :param pool_timeout:
    2844:  If set and the pool is set to block=True, then this method will
    2845:  block for ``pool_timeout`` seconds and raise EmptyPoolError if no
    ...
    
    2872:  if headers is None:
    2873:  headers = self.headers
    2874:  if not isinstance(retries, Retry):
    2875:  retries = Retry.from_int(retries, redirect=redirect, default=self.retries)
    2876:  if release_conn is None:
    2877:  release_conn = preload_content
    2878:  # Check host
    2879:  if assert_same_host and not self.is_same_host(url):
    2880:  raise HostChangedError(self, url, retries)
    ...
    
    2899:  )
    2900:  # Merge the proxy headers. Only done when not using HTTP CONNECT. We
    2901:  # have to copy the headers dict so we can safely change it without those
    2902:  # changes being reflected in anyone else's copy.
    2903:  if not http_tunnel_required:
    2904:  headers = headers.copy()  # type: ignore[attr-defined]
    2905:  headers.update(self.proxy_headers)  # type: ignore[union-attr]
    2906:  # Must keep the exception bound to a separate variable or else Python 3
    2907:  # complains about UnboundLocalError.
    ...
    
    2916:  # Request a connection from the queue.
    2917:  timeout_obj = self._get_timeout(timeout)
    2918:  conn = self._get_conn(timeout=pool_timeout)
    2919:  conn.timeout = timeout_obj.connect_timeout  # type: ignore[assignment]
    2920:  # Is this a closed/new connection that requires CONNECT tunnelling?
    2921:  if self.proxy is not None and http_tunnel_required and conn.is_closed:
    2922:  try:
    2923:  self._prepare_proxy(conn)
    2924:  except (BaseSSLError, OSError, SocketTimeout) as e:
    ...
    
    2966:  print("reply:", repr(line))
    2967:  if not line:
    2968:  # Presumably, the server closed the connection before
    2969:  # sending a valid response.
    2970:  raise RemoteDisconnected("Remote end closed connection without"
    2971:  " response")
    2972:  try:
    2973:  version, status, reason = line.split(None, 2)
    2974:  except ValueError:
    2975:  try:
    2976:  version, status = line.split(None, 1)
    2977:  reason = ""
    2978:  except ValueError:
    2979:  # empty version will cause next test to fail.
    ...
    
    3038:  return self.request_encode_body(
    3039:  ../rules_python++pip+py_dev_requirements_39_urllib3/site-packages/urllib3/_request_methods.py:217: in request_encode_body
    3040:  return self.urlopen(method, url, **extra_kw)
    3041:  ../rules_python++pip+py_dev_requirements_39_urllib3/site-packages/urllib3/poolmanager.py:443: in urlopen
    3042:  response = conn.urlopen(method, u.request_uri, **kw)
    3043:  ../rules_python++pip+py_dev_requirements_39_urllib3/site-packages/urllib3/connectionpool.py:845: in urlopen
    3044:  retries = retries.increment(
    3045:  ../rules_python++pip+py_dev_requirements_39_urllib3/site-packages/urllib3/util/retry.py:470: in increment
    3046:  raise reraise(type(error), error, _stacktrace)
    ...
    
    3066:  print("reply:", repr(line))
    3067:  if not line:
    3068:  # Presumably, the server closed the connection before
    3069:  # sending a valid response.
    3070:  raise RemoteDisconnected("Remote end closed connection without"
    3071:  " response")
    3072:  try:
    3073:  version, status, reason = line.split(None, 2)
    3074:  except ValueError:
    3075:  try:
    3076:  version, status = line.split(None, 1)
    3077:  reason = ""
    3078:  except ValueError:
    3079:  # empty version will cause next test to fail.
    3080:  version = ""
    3081:  if not version.startswith("HTTP/"):
    3082:  self._close_conn()
    3083:  >           raise BadStatusLine(line)
    3084:  E           urllib3.exceptions.ProtocolError: ('Connection aborted.', BadStatusLine('\x00\x00\x12\x04\x00\x00\x00\x00\x00\x00\x03\x7fÿÿÿ\x00\x04\x00\x10\x00\x00\x00\x06\x00\x00 \x00\x00\x00\x04\x08\x00\x00\x00\x00\x00\x00\x0f\x00\x01\x00\x003\x07\x00\x00\x00\x00\x00\x7fÿÿÿ\x00\x00\x00\x01Unexpected HTTP/1.x request: POST /session '))
    3085:  /home/runner/.bazel/external/rules_python++python+python_3_9_x86_64-unknown-linux-gnu/lib/python3.9/http/client.py:302: ProtocolError
    ...
    
    3093:  # skip tests if not available on the platform
    3094:  _platform = platform.system()
    3095:  if driver_class == "Safari" and _platform != "Darwin":
    3096:  pytest.skip("Safari tests can only run on an Apple OS")
    3097:  if (driver_class == "Ie") and _platform != "Windows":
    3098:  pytest.skip("IE and EdgeHTML Tests can only run on Windows")
    3099:  if "WebKit" in driver_class and _platform != "Linux":
    3100:  pytest.skip("Webkit tests can only run on Linux")
    3101:  # conditionally mark tests as expected to fail based on driver
    ...
    
    3178:  print("reply:", repr(line))
    3179:  if not line:
    3180:  # Presumably, the server closed the connection before
    3181:  # sending a valid response.
    3182:  raise RemoteDisconnected("Remote end closed connection without"
    3183:  " response")
    3184:  try:
    3185:  version, status, reason = line.split(None, 2)
    3186:  except ValueError:
    3187:  try:
    3188:  version, status = line.split(None, 1)
    3189:  reason = ""
    3190:  except ValueError:
    3191:  # empty version will cause next test to fail.
    ...
    
    3193:  if not version.startswith("HTTP/"):
    3194:  self._close_conn()
    3195:  >           raise BadStatusLine(line)
    3196:  E           http.client.BadStatusLine: ������������ÿÿÿ���������� ����������������3�������ÿÿÿ����Unexpected HTTP/1.x request: GET /shutdown
    3197:  /home/runner/.bazel/external/rules_python++python+python_3_9_x86_64-unknown-linux-gnu/lib/python3.9/http/client.py:302: BadStatusLine
    3198:  py/test/selenium/webdriver/common/element_equality_tests.py::test_different_elements_are_not_equal[edge] PASSED [ 66%]
    3199:  py/test/selenium/webdriver/common/element_equality_tests.py::test_same_elements_found_different_ways_should_not_be_duplicated_in_aset[edge] PASSED [100%]
    3200:  =========================== short test summary info ============================
    3201:  ERROR py/test/selenium/webdriver/common/element_equality_tests.py::test_same_element_looked_up_different_ways_should_be_equal[edge] - http.client.BadStatusLine: ������������ÿÿÿ���������� ����������������3�������ÿÿÿ����Unexpected HTTP/1.x request: GET /shutdown
    3202:  ========================== 2 passed, 1 error in 1.93s ==========================
    ...
    
    3225:  �[32m[1,032 / 1,048]�[0m 37 / 53 tests;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py; 76s local, disk-cache ... (4 actions, 2 running)
    3226:  �[32m[1,032 / 1,048]�[0m 37 / 53 tests;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py; 86s local, disk-cache ... (4 actions, 3 running)
    3227:  �[32m[1,033 / 1,048]�[0m 38 / 53 tests;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py; 88s local, disk-cache ... (4 actions, 2 running)
    3228:  �[32m[1,033 / 1,048]�[0m 38 / 53 tests;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py; 98s local, disk-cache ... (4 actions, 2 running)
    3229:  �[32m[1,033 / 1,048]�[0m 38 / 53 tests;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py; 108s local, disk-cache ... (4 actions, 2 running)
    3230:  �[32m[1,034 / 1,048]�[0m 39 / 53 tests;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py; 110s local, disk-cache ... (4 actions, 1 running)
    3231:  �[32m[1,034 / 1,048]�[0m 39 / 53 tests;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py; 114s local, disk-cache ... (4 actions, 2 running)
    3232:  �[31m�[1mFAIL: �[0m//py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py/test.log)
    3233:  �[31m�[1mFAILED: �[0m//py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py (Summary)
    ...
    
    3238:  ==================== Test output for //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py:
    3239:  ============================= test session starts ==============================
    3240:  platform linux -- Python 3.9.21, pytest-7.4.4, pluggy-1.3.0
    3241:  rootdir: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/_main/py
    3242:  configfile: pyproject.toml
    3243:  plugins: instafail-0.5.0, trio-0.8.0, mock-3.12.0
    3244:  collected 4 items
    3245:  py/test/selenium/webdriver/common/bidi_tests.py::test_check_console_messages[edge] PASSED [ 25%]
    3246:  py/test/selenium/webdriver/common/bidi_tests.py::test_check_error_console_messages[edge] PASSED [ 50%]
    3247:  py/test/selenium/webdriver/common/bidi_tests.py::test_collect_js_exceptions[edge] PASSED [ 75%]
    3248:  py/test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge] FAILED [100%]
    ...
    
    3267:  await self.gen.athrow(typ, value, traceback)
    3268:  py/selenium/webdriver/remote/webdriver.py:1240: in bidi_connection
    3269:  yield BidiConnection(session, cdp, devtools)
    3270:  /home/runner/.bazel/external/rules_python++python+python_3_9_x86_64-unknown-linux-gnu/lib/python3.9/contextlib.py:199: in __aexit__
    3271:  await self.gen.athrow(typ, value, traceback)
    3272:  py/selenium/webdriver/common/bidi/cdp.py:494: in open_cdp
    3273:  await conn.aclose()
    3274:  ../rules_python++pip+py_dev_requirements_39_trio/site-packages/trio/_core/_run.py:850: in __aexit__
    3275:  raise combined_error_from_nursery
    ...
    
    3279:  self._handle_event(data)
    3280:  py/selenium/webdriver/common/bidi/cdp.py:304: in _handle_event
    3281:  event = devtools.util.parse_json_event(data)
    3282:  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    3283:  json = {'method': 'Page.frameStartedNavigating', 'params': {'frameId': 'F38657656180E01BB1649DD27C345443', 'loaderId': '87CBD...e': 'differentDocument', 'url': 'http://127.0.0.1:8000/dynamic.html'}, 'sessionId': '3272E1F4BDCB79ECE1538759B43B4BC1'}
    3284:  def parse_json_event(json: T_JSON_DICT) -> typing.Any:
    3285:  ''' Parse a JSON dictionary into a CDP event. '''
    3286:  >       return _event_parsers[json['method']].from_json(json['params'])
    3287:  E       KeyError: 'Page.frameStartedNavigating'
    3288:  py/selenium/webdriver/common/devtools/v133/util.py:20: KeyError
    3289:  =============================== warnings summary ===============================
    3290:  test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge]
    3291:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/rules_python++pip+py_dev_requirements_39_trio_websocket/site-packages/trio_websocket/_impl.py:64: TrioDeprecationWarning: trio.MultiError is deprecated since Trio 0.22.0; use BaseExceptionGroup (on Python 3.11 and later) or exceptiongroup.BaseExceptionGroup (earlier versions) instead (https://github.com/python-trio/trio/issues/2211)
    3292:  return trio.MultiError.filter(remove_cancels, value) is None
    3293:  test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge]
    3294:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/rules_python++pip+py_dev_requirements_39_trio_websocket/site-packages/trio_websocket/_impl.py:64: TrioDeprecationWarning: MultiError.filter() is deprecated since Trio 0.22.0; use BaseExceptionGroup.split() instead (https://github.com/python-trio/trio/issues/2211)
    3295:  return trio.MultiError.filter(remove_cancels, value) is None
    3296:  -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
    3297:  =========================== short test summary info ============================
    3298:  FAILED py/test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge] - KeyError: 'Page.frameStartedNavigating'
    3299:  =================== 1 failed, 3 passed, 2 warnings in 4.71s ====================
    ...
    
    3301:  ==================== Test output for //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py:
    3302:  ============================= test session starts ==============================
    3303:  platform linux -- Python 3.9.21, pytest-7.4.4, pluggy-1.3.0
    3304:  rootdir: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/_main/py
    3305:  configfile: pyproject.toml
    3306:  plugins: instafail-0.5.0, trio-0.8.0, mock-3.12.0
    3307:  collected 4 items
    3308:  py/test/selenium/webdriver/common/bidi_tests.py::test_check_console_messages[edge] PASSED [ 25%]
    3309:  py/test/selenium/webdriver/common/bidi_tests.py::test_check_error_console_messages[edge] PASSED [ 50%]
    3310:  py/test/selenium/webdriver/common/bidi_tests.py::test_collect_js_exceptions[edge] PASSED [ 75%]
    3311:  py/test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge] FAILED [100%]
    ...
    
    3330:  await self.gen.athrow(typ, value, traceback)
    3331:  py/selenium/webdriver/remote/webdriver.py:1240: in bidi_connection
    3332:  yield BidiConnection(session, cdp, devtools)
    3333:  /home/runner/.bazel/external/rules_python++python+python_3_9_x86_64-unknown-linux-gnu/lib/python3.9/contextlib.py:199: in __aexit__
    3334:  await self.gen.athrow(typ, value, traceback)
    3335:  py/selenium/webdriver/common/bidi/cdp.py:494: in open_cdp
    3336:  await conn.aclose()
    3337:  ../rules_python++pip+py_dev_requirements_39_trio/site-packages/trio/_core/_run.py:850: in __aexit__
    3338:  raise combined_error_from_nursery
    ...
    
    3342:  self._handle_event(data)
    3343:  py/selenium/webdriver/common/bidi/cdp.py:304: in _handle_event
    3344:  event = devtools.util.parse_json_event(data)
    3345:  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    3346:  json = {'method': 'Page.frameStartedNavigating', 'params': {'frameId': '3D2C260DDB12860B74D347847155822A', 'loaderId': '55493...e': 'differentDocument', 'url': 'http://127.0.0.1:8000/dynamic.html'}, 'sessionId': '955B4D85D3BBC59B8D8D1E58EA7C2EE6'}
    3347:  def parse_json_event(json: T_JSON_DICT) -> typing.Any:
    3348:  ''' Parse a JSON dictionary into a CDP event. '''
    3349:  >       return _event_parsers[json['method']].from_json(json['params'])
    3350:  E       KeyError: 'Page.frameStartedNavigating'
    3351:  py/selenium/webdriver/common/devtools/v133/util.py:20: KeyError
    3352:  =============================== warnings summary ===============================
    3353:  test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge]
    3354:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/rules_python++pip+py_dev_requirements_39_trio_websocket/site-packages/trio_websocket/_impl.py:64: TrioDeprecationWarning: trio.MultiError is deprecated since Trio 0.22.0; use BaseExceptionGroup (on Python 3.11 and later) or exceptiongroup.BaseExceptionGroup (earlier versions) instead (https://github.com/python-trio/trio/issues/2211)
    3355:  return trio.MultiError.filter(remove_cancels, value) is None
    3356:  test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge]
    3357:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/rules_python++pip+py_dev_requirements_39_trio_websocket/site-packages/trio_websocket/_impl.py:64: TrioDeprecationWarning: MultiError.filter() is deprecated since Trio 0.22.0; use BaseExceptionGroup.split() instead (https://github.com/python-trio/trio/issues/2211)
    3358:  return trio.MultiError.filter(remove_cancels, value) is None
    3359:  -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
    3360:  =========================== short test summary info ============================
    3361:  FAILED py/test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge] - KeyError: 'Page.frameStartedNavigating'
    3362:  =================== 1 failed, 3 passed, 2 warnings in 4.71s ====================
    ...
    
    3364:  ==================== Test output for //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py:
    3365:  ============================= test session starts ==============================
    3366:  platform linux -- Python 3.9.21, pytest-7.4.4, pluggy-1.3.0
    3367:  rootdir: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/_main/py
    3368:  configfile: pyproject.toml
    3369:  plugins: instafail-0.5.0, trio-0.8.0, mock-3.12.0
    3370:  collected 4 items
    3371:  py/test/selenium/webdriver/common/bidi_tests.py::test_check_console_messages[edge] PASSED [ 25%]
    3372:  py/test/selenium/webdriver/common/bidi_tests.py::test_check_error_console_messages[edge] PASSED [ 50%]
    3373:  py/test/selenium/webdriver/common/bidi_tests.py::test_collect_js_exceptions[edge] PASSED [ 75%]
    3374:  py/test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge] FAILED [100%]
    ...
    
    3393:  await self.gen.athrow(typ, value, traceback)
    3394:  py/selenium/webdriver/remote/webdriver.py:1240: in bidi_connection
    3395:  yield BidiConnection(session, cdp, devtools)
    3396:  /home/runner/.bazel/external/rules_python++python+python_3_9_x86_64-unknown-linux-gnu/lib/python3.9/contextlib.py:199: in __aexit__
    3397:  await self.gen.athrow(typ, value, traceback)
    3398:  py/selenium/webdriver/common/bidi/cdp.py:494: in open_cdp
    3399:  await conn.aclose()
    3400:  ../rules_python++pip+py_dev_requirements_39_trio/site-packages/trio/_core/_run.py:850: in __aexit__
    3401:  raise combined_error_from_nursery
    ...
    
    3405:  self._handle_event(data)
    3406:  py/selenium/webdriver/common/bidi/cdp.py:304: in _handle_event
    3407:  event = devtools.util.parse_json_event(data)
    3408:  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    3409:  json = {'method': 'Page.frameStartedNavigating', 'params': {'frameId': 'D01A62EAC2698FBB1F42A78050443A59', 'loaderId': '23E4C...e': 'differentDocument', 'url': 'http://127.0.0.1:8000/dynamic.html'}, 'sessionId': 'E89978EBDDC352E2D79500F98C00358F'}
    3410:  def parse_json_event(json: T_JSON_DICT) -> typing.Any:
    3411:  ''' Parse a JSON dictionary into a CDP event. '''
    3412:  >       return _event_parsers[json['method']].from_json(json['params'])
    3413:  E       KeyError: 'Page.frameStartedNavigating'
    3414:  py/selenium/webdriver/common/devtools/v133/util.py:20: KeyError
    3415:  =============================== warnings summary ===============================
    3416:  test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge]
    3417:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/rules_python++pip+py_dev_requirements_39_trio_websocket/site-packages/trio_websocket/_impl.py:64: TrioDeprecationWarning: trio.MultiError is deprecated since Trio 0.22.0; use BaseExceptionGroup (on Python 3.11 and later) or exceptiongroup.BaseExceptionGroup (earlier versions) instead (https://github.com/python-trio/trio/issues/2211)
    3418:  return trio.MultiError.filter(remove_cancels, value) is None
    3419:  test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge]
    3420:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/rules_python++pip+py_dev_requirements_39_trio_websocket/site-packages/trio_websocket/_impl.py:64: TrioDeprecationWarning: MultiError.filter() is deprecated since Trio 0.22.0; use BaseExceptionGroup.split() instead (https://github.com/python-trio/trio/issues/2211)
    3421:  return trio.MultiError.filter(remove_cancels, value) is None
    3422:  -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
    3423:  =========================== short test summary info ============================
    3424:  FAILED py/test/selenium/webdriver/common/bidi_tests.py::test_collect_log_mutations[edge] - KeyError: 'Page.frameStartedNavigating'
    3425:  =================== 1 failed, 3 passed, 2 warnings in 4.80s ====================
    3426:  ================================================================================
    3427:  �[32m[1,035 / 1,048]�[0m 40 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/cookie_tests.py; 29s ... (4 actions, 1 running)
    3428:  �[32m[1,035 / 1,048]�[0m 40 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/cookie_tests.py; 39s ... (4 actions, 1 running)
    3429:  �[32m[1,035 / 1,048]�[0m 40 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/window_tests.py; 29s ... (4 actions, 2 running)
    3430:  �[32m[1,036 / 1,048]�[0m 41 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/window_tests.py; 31s ... (4 actions, 1 running)
    3431:  �[32m[1,036 / 1,048]�[0m 41 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/interactions_tests.py; 34s ... (4 actions, 2 running)
    3432:  �[32m[1,037 / 1,048]�[0m 42 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/interactions_tests.py; 36s ... (4 actions, 1 running)
    3433:  �[32m[1,037 / 1,048]�[0m 42 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/stale_reference_tests.py; 17s ... (4 actions, 2 running)
    3434:  �[32m[1,038 / 1,048]�[0m 43 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/stale_reference_tests.py; 18s ... (4 actions, 1 running)
    3435:  �[32m[1,038 / 1,048]�[0m 43 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/stale_reference_tests.py; 28s ... (4 actions, 1 running)
    3436:  �[32m[1,038 / 1,048]�[0m 43 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/support/relative_by_tests.py; 33s ... (4 actions, 2 running)
    3437:  �[32m[1,039 / 1,048]�[0m 44 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/support/relative_by_tests.py; 35s ... (4 actions, 1 running)
    3438:  �[32m[1,039 / 1,048]�[0m 44 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/clear_tests.py; 30s ... (4 actions, 2 running)
    3439:  �[32m[1,040 / 1,048]�[0m 45 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/clear_tests.py; 31s ... (4 actions, 1 running)
    3440:  �[32m[1,040 / 1,048]�[0m 45 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/clear_tests.py; 41s ... (4 actions, 1 running)
    3441:  �[32m[1,040 / 1,048]�[0m 45 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/window_switching_tests.py; 24s ... (4 actions, 2 running)
    3442:  �[32m[1,041 / 1,048]�[0m 46 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/window_switching_tests.py; 26s ... (4 actions, 1 running)
    3443:  �[32m[1,041 / 1,048]�[0m 46 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/select_class_tests.py; 26s ... (4 actions, 2 running)
    3444:  �[32m[1,042 / 1,048]�[0m 47 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/select_class_tests.py; 27s ... (4 actions, 1 running)
    3445:  �[32m[1,042 / 1,048]�[0m 47 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/select_class_tests.py; 37s ... (4 actions, 1 running)
    3446:  �[32m[1,043 / 1,048]�[0m 48 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/timeout_tests.py; 17s ... (4 actions, 1 running)
    3447:  �[32m[1,043 / 1,048]�[0m 48 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/timeout_tests.py; 28s ... (4 actions, 1 running)
    3448:  �[32m[1,043 / 1,048]�[0m 48 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/quit_tests.py; 41s ... (4 actions, 2 running)
    3449:  �[32m[1,044 / 1,048]�[0m 49 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/quit_tests.py; 42s ... (4 actions, 1 running)
    3450:  �[32m[1,044 / 1,048]�[0m 49 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/rendered_webelement_tests.py; 32s ... (4 actions, 2 running)
    3451:  �[32m[1,045 / 1,048]�[0m 50 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/rendered_webelement_tests.py; 33s ... (3 actions, 1 running)
    3452:  �[32m[1,046 / 1,048]�[0m 51 / 53 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //py:common-edge-bidi-test/selenium/webdriver/common/click_scrolling_tests.py; 4s ... (2 actions, 1 running)
    3453:  �[32m[1,046 / 1,048]�[0m 51 / 53 tests, �[31m�[1m1 failed�[0m;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/rendered_webelement_tests.py; 4s local, disk-cache ... (2 actions running)
    3454:  �[32m[1,047 / 1,048]�[0m 52 / 53 tests, �[31m�[1m1 failed�[0m;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/click_scrolling_tests.py; 1s local, disk-cache
    3455:  �[32m[1,047 / 1,048]�[0m 52 / 53 tests, �[31m�[1m1 failed�[0m;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/click_scrolling_tests.py; 11s local, disk-cache
    3456:  �[32m[1,047 / 1,048]�[0m 52 / 53 tests, �[31m�[1m1 failed�[0m;�[0m Testing //py:common-edge-bidi-test/selenium/webdriver/common/click_scrolling_tests.py; 15s local, disk-cache
    3457:  �[32mINFO: �[0mFound 53 test targets...
    3458:  �[32mINFO: �[0mElapsed time: 1083.905s, Critical Path: 194.61s
    3459:  �[32mINFO: �[0m1048 processes: 2 disk cache hit, 471 internal, 110 local, 390 processwrapper-sandbox, 75 worker.
    3460:  �[32mINFO: �[0mBuild completed, 1 test FAILED, 1048 total actions
    ...
    
    3504:  //py:common-edge-bidi-test/selenium/webdriver/common/w3c_interaction_tests.py �[0m�[32mPASSED�[0m in 18.6s
    3505:  //py:common-edge-bidi-test/selenium/webdriver/common/web_components_tests.py �[0m�[32mPASSED�[0m in 5.0s
    3506:  //py:common-edge-bidi-test/selenium/webdriver/common/webdriverwait_tests.py �[0m�[32mPASSED�[0m in 73.8s
    3507:  //py:common-edge-bidi-test/selenium/webdriver/common/window_switching_tests.py �[0m�[32mPASSED�[0m in 12.3s
    3508:  //py:common-edge-bidi-test/selenium/webdriver/common/window_tests.py     �[0m�[32mPASSED�[0m in 6.7s
    3509:  //py:common-edge-bidi-test/selenium/webdriver/support/event_firing_webdriver_tests.py �[0m�[32mPASSED�[0m in 11.3s
    3510:  //py:common-edge-bidi-test/selenium/webdriver/support/expected_conditions_tests.py �[0m�[32mPASSED�[0m in 11.3s
    3511:  //py:common-edge-bidi-test/selenium/webdriver/support/relative_by_tests.py �[0m�[32mPASSED�[0m in 21.6s
    3512:  //py:common-edge-bidi-test/selenium/webdriver/common/element_equality_tests.py �[0m�[35mFLAKY�[0m, failed in 1 out of 2 in 3.2s
    3513:  Stats over 2 runs: max = 3.2s, min = 3.2s, avg = 3.2s, dev = 0.0s
    3514:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/py/common-edge-bidi-test/selenium/webdriver/common/element_equality_tests.py/test_attempts/attempt_1.log
    3515:  //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py       �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 5.9s
    3516:  Stats over 3 runs: max = 5.9s, min = 5.6s, avg = 5.8s, dev = 0.1s
    3517:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py/test.log
    3518:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py/test_attempts/attempt_1.log
    3519:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py/test_attempts/attempt_2.log
    3520:  Executed 53 out of 53 tests: 52 tests pass and �[0m�[31m�[1m1 fails locally�[0m.
    3521:  There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
    3522:  �[0m
    3523:  ##[error]Process completed with exit code 3.
    3524:  Post job cleanup.
    3525:  ##[group]Save cache for disk-py-browser-edge
    3526:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3527:  Sent 48985747 of 48985747 (100.0%), 46.7 MBs/sec
    3528:  Successfully saved cache
    3529:  ##[endgroup]
    3530:  ##[group]Save cache for external-aspect_rules_js++pnpm+pnpm
    3531:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3532:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3533:  Successfully saved cache
    3534:  ##[endgroup]
    3535:  ##[group]Save cache for external-com_google_javascript_closure_library
    3536:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3537:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3538:  Successfully saved cache
    3539:  ##[endgroup]
    3540:  ##[group]Save cache for external-crates
    3541:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3542:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3543:  Successfully saved cache
    3544:  ##[endgroup]
    3545:  ##[group]Save cache for external-protobuf+
    3546:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3547:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3548:  Successfully saved cache
    3549:  ##[endgroup]
    3550:  ##[group]Save cache for external-rules_java++toolchains+remote_java_tools
    3551:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3552:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3553:  Successfully saved cache
    3554:  ##[endgroup]
    3555:  ##[group]Save cache for external-rules_java++toolchains+remote_java_tools_linux
    3556:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3557:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3558:  Successfully saved cache
    3559:  ##[endgroup]
    3560:  ##[group]Save cache for external-rules_java++toolchains+remotejdk17_linux
    3561:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3562:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3563:  Successfully saved cache
    3564:  ##[endgroup]
    3565:  ##[group]Save cache for external-rules_java++toolchains+remotejdk21_linux
    3566:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3567:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3568:  Successfully saved cache
    3569:  ##[endgroup]
    3570:  ##[group]Save cache for external-rules_kotlin+
    3571:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3572:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3573:  Successfully saved cache
    3574:  ##[endgroup]
    3575:  ##[group]Save cache for external-rules_nodejs++node+nodejs_linux_amd64
    3576:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3577:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3578:  Successfully saved cache
    3579:  ##[endgroup]
    3580:  ##[group]Save cache for external-rules_python++pip+py_dev_requirements_39_debugpy
    3581:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3582:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3583:  Successfully saved cache
    3584:  ##[endgroup]
    3585:  ##[group]Save cache for external-rules_python++python+python_3_9_x86_64-unknown-linux-gnu
    3586:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3587:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3588:  Successfully saved cache
    3589:  ##[endgroup]
    3590:  ##[group]Save cache for external-rules_rust
    3591:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3592:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    3593:  Successfully saved cache
    3594:  ##[endgroup]
    3595:  ##[group]Save cache for external-rust_linux_x86_64__x86_64-unknown-linux-gnu__stable_tools
    3596:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/selenium/selenium --files-from manifest.txt --use-compress-program zstdmt
    3597:  ##[warning]Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists
    

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    P-enhancement PR with a new feature R-awaiting merge PR depends on another PR for merging Review effort [1-5]: 4
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    4 participants