You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)
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.
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.
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.
-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.
+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.
-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.
+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.
-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.
+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.
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 System2: Ubuntu
...
970: Package 'php-symfony-debug-bundle' is not installed, so not removed971: Package 'php-symfony-dependency-injection' is not installed, so not removed972: Package 'php-symfony-deprecation-contracts' is not installed, so not removed973: Package 'php-symfony-discord-notifier' is not installed, so not removed974: Package 'php-symfony-doctrine-bridge' is not installed, so not removed975: Package 'php-symfony-doctrine-messenger' is not installed, so not removed976: Package 'php-symfony-dom-crawler' is not installed, so not removed977: Package 'php-symfony-dotenv' is not installed, so not removed978: 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/test1898: (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/test1899: (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/test1900: (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/test1901: (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/test1902: (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/test1903: (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/test1904: (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/test1905: (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/test2011: (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 removal2019: 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 removal2022: 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 removal2025: 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 removal2028: 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 removal2031: 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 removal2034: 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 removal2037: 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 removal2040: 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 removal2043: 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 removal2046: 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 removal2049: 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 removal2052: 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 removal2055: 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 removal2058: 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 removal2061: 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 removal2064: 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 removal2067: 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 removal2070: 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: 33025: 00:24:49.792 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 13026: 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: 23029: {"using":"css selector","value":"input"}3030: 00:24:49.809 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 13031: 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.ShadowRootHandlingTest3084: Creating new driver of OpenQA.Selenium.Edge.StableChannelEdgeDriver type...3085: => OpenQA.Selenium.AssemblyFixture3086: 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: 23088: 00:24:50.281 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 13089: 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 369573091: Errors, Failures and Warnings3092: 1) Failed : OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot3093: Expected: instance of <OpenQA.Selenium.NoSuchShadowRootException>3094: But was: no exception thrown3095: at OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot()3096: Run Settings3097: Number of Test Workers: 23098: 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/_main3099: Internal Trace: Off3100: Test Run Summary3101: Overall result: Failed3102: Test Count: 5, Passed: 4, Failed: 1, Warnings: 0, Inconclusive: 0, Skipped: 03103: 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: 33167: 00:25:36.764 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 13168: 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: 23171: {"using":"css selector","value":"input"}3172: 00:25:36.779 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 13173: 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.ShadowRootHandlingTest3226: Creating new driver of OpenQA.Selenium.Edge.StableChannelEdgeDriver type...3227: => OpenQA.Selenium.AssemblyFixture3228: 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: 23230: 00:25:37.167 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 13231: 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 341673233: Errors, Failures and Warnings3234: 1) Failed : OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot3235: Expected: instance of <OpenQA.Selenium.NoSuchShadowRootException>3236: But was: no exception thrown3237: at OpenQA.Selenium.ShadowRootHandlingTest.ShouldThrowGettingShadowRootWithElementNotHavingShadowRoot()3238: Run Settings3239: Number of Test Workers: 23240: 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/_main3241: Internal Trace: Off3242: Test Run Summary3243: Overall result: Failed3244: Test Count: 5, Passed: 4, Failed: 1, Warnings: 0, Inconclusive: 0, Skipped: 03245: Failed Tests - Failures: 1, Errors: 0, Invalid: 03246: Start time: 2024-11-22 00:25:31Z3247: End time: 2024-11-22 00:25:38Z3248: Duration: 6.715 seconds3249: 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.xml3250: Execution result: https://gypsum.cluster.engflow.com/actions/executions/ChCgHfMQ0UNCiqLjEC0JFA-PEgdkZWZhdWx0GiUKIJaJxWrPaKfOr3F_-LeUu-knqGiI7pTTwTGCAhFs4hK4EJ8D3251: ================================================================================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: 33345: 00:28:20.091 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 13346: 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: 23349: {"using":"css selector","value":"input"}3350: 00:28:20.116 TRACE HttpCommandExecutor: << StatusCode: 200, ReasonPhrase: OK, Content: System.Net.Http.HttpConnectionResponseContent, Headers: 13351: 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...
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.
@shs96c i do not think decoding of stacktraces is working at all:
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.
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.
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.
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 System2: Ubuntu
...
931: Package 'php-symfony-asset' is not installed, so not removed932: Package 'php-symfony-asset-mapper' is not installed, so not removed933: Package 'php-symfony-browser-kit' is not installed, so not removed934: Package 'php-symfony-clock' is not installed, so not removed935: Package 'php-symfony-debug-bundle' is not installed, so not removed936: Package 'php-symfony-doctrine-bridge' is not installed, so not removed937: Package 'php-symfony-dom-crawler' is not installed, so not removed938: Package 'php-symfony-dotenv' is not installed, so not removed939: Package 'php-symfony-error-handler' is not installed, so not removed
...
1125: Package 'php-uopz-all-dev' is not installed, so not removed1126: Package 'php8.3-uploadprogress' is not installed, so not removed1127: Package 'php-uploadprogress-all-dev' is not installed, so not removed1128: Package 'php8.3-uuid' is not installed, so not removed1129: Package 'php-uuid-all-dev' is not installed, so not removed1130: Package 'php-validate' is not installed, so not removed1131: Package 'php-vlucas-phpdotenv' is not installed, so not removed1132: Package 'php-voku-portable-ascii' is not installed, so not removed1133: Package 'php-wmerrors' is not installed, so not removed
...
1655: Received 55563607 of 55563607 (100.0%), 73.7 MBs/sec1656: 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 unzstd1658: Cache restored successfully1659: Successfully restored cache from setup-bazel-2-linux-bazelisk-f5f884b6af011b7b5194329ff462343da417842d8de319f232cfbf477f4449941660: ##[endgroup]1661: ##[group]Restore cache for disk-py-browser-edge1662: ##[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/sec1668: 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 unzstd1670: Cache restored successfully1671: Successfully restored cache from setup-bazel-2-linux-repository-ee6997f60d3380c07a4eedaccfa226adc972d3f85dd690054901daec4d6878381672: ##[endgroup]1673: ##[group]Restore cache for external-py-browser-edge-manifest1674: ##[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 mode1959: 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 XF86FishingChart1983: > Warning: Could not resolve keysym XF86SingleRangeRadar1984: > Warning: Could not resolve keysym XF86DualRangeRadar1985: > Warning: Could not resolve keysym XF86RadarOverlay1986: > Warning: Could not resolve keysym XF86TraditionalSonar1987: > Warning: Could not resolve keysym XF86ClearvuSonar1988: > Warning: Could not resolve keysym XF86SidevuSonar1989: > Warning: Could not resolve keysym XF86NavInfo1990: Errors from xkbcomp are not fatal to the X server1991: Failed to read: session.ignoreBorder1992: Setting default value1993: Failed to read: session.forcePseudoTransparency1994: Setting default value1995: Failed to read: session.colorsPerChannel1996: Setting default value1997: Failed to read: session.doubleClickInterval1998: Setting default value1999: Failed to read: session.tabPadding2000: Setting default value2001: Failed to read: session.styleOverlay2002: Setting default value2003: Failed to read: session.slitlistFile2004: Setting default value2005: Failed to read: session.appsFile2006: Setting default value2007: Failed to read: session.tabsAttachArea2008: Setting default value2009: Failed to read: session.menuSearch2010: Setting default value2011: Failed to read: session.cacheLife2012: Setting default value2013: Failed to read: session.cacheMax2014: Setting default value2015: Failed to read: session.autoRaiseDelay2016: Setting default value2017: Failed to read: session.ignoreBorder2018: Setting default value2019: Failed to read: session.forcePseudoTransparency2020: Setting default value2021: Failed to read: session.colorsPerChannel2022: Setting default value2023: Failed to read: session.doubleClickInterval2024: Setting default value2025: Failed to read: session.tabPadding2026: Setting default value2027: Failed to read: session.styleOverlay2028: Setting default value2029: Failed to read: session.slitlistFile2030: Setting default value2031: Failed to read: session.appsFile2032: Setting default value2033: Failed to read: session.tabsAttachArea2034: Setting default value2035: Failed to read: session.menuSearch2036: Setting default value2037: Failed to read: session.cacheLife2038: Setting default value2039: Failed to read: session.cacheMax2040: Setting default value2041: Failed to read: session.autoRaiseDelay2042: Setting default value2043: Failed to read: session.screen0.opaqueMove2044: Setting default value2045: Failed to read: session.screen0.fullMaximization2046: Setting default value2047: Failed to read: session.screen0.maxIgnoreIncrement2048: Setting default value2049: Failed to read: session.screen0.maxDisableMove2050: Setting default value2051: Failed to read: session.screen0.maxDisableResize2052: Setting default value2053: Failed to read: session.screen0.workspacewarping2054: Setting default value2055: Failed to read: session.screen0.showwindowposition2056: Setting default value2057: Failed to read: session.screen0.autoRaise2058: Setting default value2059: Failed to read: session.screen0.clickRaises2060: Setting default value2061: Failed to read: session.screen0.defaultDeco2062: Setting default value2063: Failed to read: session.screen0.tab.placement2064: Setting default value2065: Failed to read: session.screen0.windowMenu2066: Setting default value2067: Failed to read: session.screen0.noFocusWhileTypingDelay2068: Setting default value2069: Failed to read: session.screen0.workspaces2070: Setting default value2071: Failed to read: session.screen0.edgeSnapThreshold2072: Setting default value2073: Failed to read: session.screen0.window.focus.alpha2074: Setting default value2075: Failed to read: session.screen0.window.unfocus.alpha2076: Setting default value2077: Failed to read: session.screen0.menu.alpha2078: Setting default value2079: Failed to read: session.screen0.menuDelay2080: Setting default value2081: Failed to read: session.screen0.tab.width2082: Setting default value2083: Failed to read: session.screen0.tooltipDelay2084: Setting default value2085: Failed to read: session.screen0.allowRemoteActions2086: Setting default value2087: Failed to read: session.screen0.clientMenu.usePixmap2088: Setting default value2089: Failed to read: session.screen0.tabs.usePixmap2090: Setting default value2091: Failed to read: session.screen0.tabs.maxOver2092: Setting default value2093: Failed to read: session.screen0.tabs.intitlebar2094: Setting default value2095: Failed to read: session.screen0.focusModel2096: Setting default value2097: Failed to read: session.screen0.tabFocusModel2098: Setting default value2099: Failed to read: session.screen0.focusNewWindows2100: Setting default value2101: Failed to read: session.screen0.focusSameHead2102: Setting default value2103: Failed to read: session.screen0.rowPlacementDirection2104: Setting default value2105: Failed to read: session.screen0.colPlacementDirection2106: Setting default value2107: Failed to read: session.screen0.windowPlacement2108: Setting default value2109: Failed to read: session.ignoreBorder2110: Setting default value2111: Failed to read: session.forcePseudoTransparency2112: Setting default value2113: Failed to read: session.colorsPerChannel2114: Setting default value2115: Failed to read: session.doubleClickInterval2116: Setting default value2117: Failed to read: session.tabPadding2118: Setting default value2119: Failed to read: session.styleOverlay2120: Setting default value2121: Failed to read: session.slitlistFile2122: Setting default value2123: Failed to read: session.appsFile2124: Setting default value2125: Failed to read: session.tabsAttachArea2126: Setting default value2127: Failed to read: session.menuSearch2128: Setting default value2129: Failed to read: session.cacheLife2130: Setting default value2131: Failed to read: session.cacheMax2132: Setting default value2133: Failed to read: session.autoRaiseDelay2134: Setting default value2135: Failed to read: session.screen0.opaqueMove2136: Setting default value2137: Failed to read: session.screen0.fullMaximization2138: Setting default value2139: Failed to read: session.screen0.maxIgnoreIncrement2140: Setting default value2141: Failed to read: session.screen0.maxDisableMove2142: Setting default value2143: Failed to read: session.screen0.maxDisableResize2144: Setting default value2145: Failed to read: session.screen0.workspacewarping2146: Setting default value2147: Failed to read: session.screen0.showwindowposition2148: Setting default value2149: Failed to read: session.screen0.autoRaise2150: Setting default value2151: Failed to read: session.screen0.clickRaises2152: Setting default value2153: Failed to read: session.screen0.defaultDeco2154: Setting default value2155: Failed to read: session.screen0.tab.placement2156: Setting default value2157: Failed to read: session.screen0.windowMenu2158: Setting default value2159: Failed to read: session.screen0.noFocusWhileTypingDelay2160: Setting default value2161: Failed to read: session.screen0.workspaces2162: Setting default value2163: Failed to read: session.screen0.edgeSnapThreshold2164: Setting default value2165: Failed to read: session.screen0.window.focus.alpha2166: Setting default value2167: Failed to read: session.screen0.window.unfocus.alpha2168: Setting default value2169: Failed to read: session.screen0.menu.alpha2170: Setting default value2171: Failed to read: session.screen0.menuDelay2172: Setting default value2173: Failed to read: session.screen0.tab.width2174: Setting default value2175: Failed to read: session.screen0.tooltipDelay2176: Setting default value2177: Failed to read: session.screen0.allowRemoteActions2178: Setting default value2179: Failed to read: session.screen0.clientMenu.usePixmap2180: Setting default value2181: Failed to read: session.screen0.tabs.usePixmap2182: Setting default value2183: Failed to read: session.screen0.tabs.maxOver2184: Setting default value2185: Failed to read: session.screen0.tabs.intitlebar2186: Setting default value2187: Failed to read: session.screen0.focusModel2188: Setting default value2189: Failed to read: session.screen0.tabFocusModel2190: Setting default value2191: Failed to read: session.screen0.focusNewWindows2192: Setting default value2193: Failed to read: session.screen0.focusSameHead2194: Setting default value2195: Failed to read: session.screen0.rowPlacementDirection2196: Setting default value2197: Failed to read: session.screen0.colPlacementDirection2198: Setting default value2199: Failed to read: session.screen0.windowPlacement2200: Setting default value2201: Failed to read: session.screen0.slit.acceptKdeDockapps2202: Setting default value2203: Failed to read: session.screen0.slit.autoHide2204: Setting default value2205: Failed to read: session.screen0.slit.maxOver2206: Setting default value2207: Failed to read: session.screen0.slit.placement2208: Setting default value2209: Failed to read: session.screen0.slit.alpha2210: Setting default value2211: Failed to read: session.screen0.slit.onhead2212: Setting default value2213: Failed to read: session.screen0.slit.layer2214: Setting default value2215: Failed to read: session.screen0.toolbar.autoHide2216: Setting default value2217: Failed to read: session.screen0.toolbar.maxOver2218: Setting default value2219: Failed to read: session.screen0.toolbar.visible2220: Setting default value2221: Failed to read: session.screen0.toolbar.alpha2222: Setting default value2223: Failed to read: session.screen0.toolbar.layer2224: Setting default value2225: Failed to read: session.screen0.toolbar.onhead2226: Setting default value2227: Failed to read: session.screen0.toolbar.placement2228: Setting default value2229: Failed to read: session.screen0.toolbar.height2230: Setting default value2231: Failed to read: session.screen0.iconbar.mode2232: Setting default value2233: Failed to read: session.screen0.iconbar.alignment2234: Setting default value2235: Failed to read: session.screen0.iconbar.iconWidth2236: Setting default value2237: Failed to read: session.screen0.iconbar.iconTextPadding2238: Setting default value2239: 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.log2758: ============================= 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.02761: 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/py2762: configfile: pyproject.toml2763: plugins: instafail-0.5.0, trio-0.8.0, mock-3.12.02764: collected 3 items2765: 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 a2821: :class:`~urllib3.exceptions.MaxRetryError` exception.2822: Pass ``None`` to retry until you receive a response. Pass a2823: :class:`~urllib3.util.retry.Retry` object for fine-grained control2824: 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 raised2828: 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 retries2834: will disable redirect, too.2835: :param assert_same_host:2836: If ``True``, will make sure that the host of the pool requests is2837: consistent else will raise HostChangedError. When ``False``, you can2838: use the pool on an HTTP proxy and request foreign hosts.2839: :param timeout:2840: If specified, overrides the default timeout for this one2841: request. It may be a float (in seconds) or an instance of2842: :class:`urllib3.util.Timeout`.2843: :param pool_timeout:2844: If set and the pool is set to block=True, then this method will2845: block for ``pool_timeout`` seconds and raise EmptyPoolError if no
...
2872: if headers is None:2873: headers = self.headers2874: 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_content2878: # Check host2879: 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. We2901: # have to copy the headers dict so we can safely change it without those2902: # 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 32907: # 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 before2969: # 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_body3040: return self.urlopen(method, url, **extra_kw)3041: ../rules_python++pip+py_dev_requirements_39_urllib3/site-packages/urllib3/poolmanager.py:443: in urlopen3042: response = conn.urlopen(method, u.request_uri, **kw)3043: ../rules_python++pip+py_dev_requirements_39_urllib3/site-packages/urllib3/connectionpool.py:845: in urlopen3044: retries = retries.increment(3045: ../rules_python++pip+py_dev_requirements_39_urllib3/site-packages/urllib3/util/retry.py:470: in increment3046: raise reraise(type(error), error, _stacktrace)
...
3066: print("reply:", repr(line))3067: if not line:3068: # Presumably, the server closed the connection before3069: # 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 platform3094: _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 before3181: # 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 /shutdown3197: /home/runner/.bazel/external/rules_python++python+python_3_9_x86_64-unknown-linux-gnu/lib/python3.9/http/client.py:302: BadStatusLine3198: 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 /shutdown3202: ========================== 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.03241: rootdir: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/_main/py3242: configfile: pyproject.toml3243: plugins: instafail-0.5.0, trio-0.8.0, mock-3.12.03244: collected 4 items3245: 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_connection3269: 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_cdp3273: 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_event3281: 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: KeyError3289: =============================== 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 None3293: 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 None3296: -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html3297: =========================== 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.03304: rootdir: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/_main/py3305: configfile: pyproject.toml3306: plugins: instafail-0.5.0, trio-0.8.0, mock-3.12.03307: collected 4 items3308: 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_connection3332: 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_cdp3336: 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_event3344: 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: KeyError3352: =============================== 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 None3356: 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 None3359: -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html3360: =========================== 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.03367: rootdir: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py.runfiles/_main/py3368: configfile: pyproject.toml3369: plugins: instafail-0.5.0, trio-0.8.0, mock-3.12.03370: collected 4 items3371: 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_connection3395: 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_cdp3399: 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_event3407: 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: KeyError3415: =============================== 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 None3419: 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 None3422: -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html3423: =========================== 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-cache3455: �[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-cache3456: �[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-cache3457: �[32mINFO: �[0mFound 53 test targets...3458: �[32mINFO: �[0mElapsed time: 1083.905s, Critical Path: 194.61s3459: �[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.6s3505: //py:common-edge-bidi-test/selenium/webdriver/common/web_components_tests.py �[0m�[32mPASSED�[0m in 5.0s3506: //py:common-edge-bidi-test/selenium/webdriver/common/webdriverwait_tests.py �[0m�[32mPASSED�[0m in 73.8s3507: //py:common-edge-bidi-test/selenium/webdriver/common/window_switching_tests.py �[0m�[32mPASSED�[0m in 12.3s3508: //py:common-edge-bidi-test/selenium/webdriver/common/window_tests.py �[0m�[32mPASSED�[0m in 6.7s3509: //py:common-edge-bidi-test/selenium/webdriver/support/event_firing_webdriver_tests.py �[0m�[32mPASSED�[0m in 11.3s3510: //py:common-edge-bidi-test/selenium/webdriver/support/expected_conditions_tests.py �[0m�[32mPASSED�[0m in 11.3s3511: //py:common-edge-bidi-test/selenium/webdriver/support/relative_by_tests.py �[0m�[32mPASSED�[0m in 21.6s3512: //py:common-edge-bidi-test/selenium/webdriver/common/element_equality_tests.py �[0m�[35mFLAKY�[0m, failed in 1 out of 2 in 3.2s3513: Stats over 2 runs: max = 3.2s, min = 3.2s, avg = 3.2s, dev = 0.0s3514: /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.log3515: //py:common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 5.9s3516: Stats over 3 runs: max = 5.9s, min = 5.6s, avg = 5.8s, dev = 0.1s3517: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/py/common-edge-bidi-test/selenium/webdriver/common/bidi_tests.py/test.log3518: /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.log3519: /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.log3520: 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: �[0m3523: ##[error]Process completed with exit code 3.3524: Post job cleanup.3525: ##[group]Save cache for disk-py-browser-edge3526: [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 zstdmt3527: Sent 48985747 of 48985747 (100.0%), 46.7 MBs/sec3528: Successfully saved cache3529: ##[endgroup]3530: ##[group]Save cache for external-aspect_rules_js++pnpm+pnpm3531: [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 zstdmt3532: ##[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 exists3533: Successfully saved cache3534: ##[endgroup]3535: ##[group]Save cache for external-com_google_javascript_closure_library3536: [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 zstdmt3537: ##[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 exists3538: Successfully saved cache3539: ##[endgroup]3540: ##[group]Save cache for external-crates3541: [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 zstdmt3542: ##[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 exists3543: Successfully saved cache3544: ##[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 zstdmt3547: ##[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 exists3548: Successfully saved cache3549: ##[endgroup]3550: ##[group]Save cache for external-rules_java++toolchains+remote_java_tools3551: [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 zstdmt3552: ##[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 exists3553: Successfully saved cache3554: ##[endgroup]3555: ##[group]Save cache for external-rules_java++toolchains+remote_java_tools_linux3556: [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 zstdmt3557: ##[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 exists3558: Successfully saved cache3559: ##[endgroup]3560: ##[group]Save cache for external-rules_java++toolchains+remotejdk17_linux3561: [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 zstdmt3562: ##[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 exists3563: Successfully saved cache3564: ##[endgroup]3565: ##[group]Save cache for external-rules_java++toolchains+remotejdk21_linux3566: [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 zstdmt3567: ##[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 exists3568: Successfully saved cache3569: ##[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 zstdmt3572: ##[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 exists3573: Successfully saved cache3574: ##[endgroup]3575: ##[group]Save cache for external-rules_nodejs++node+nodejs_linux_amd643576: [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 zstdmt3577: ##[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 exists3578: Successfully saved cache3579: ##[endgroup]3580: ##[group]Save cache for external-rules_python++pip+py_dev_requirements_39_debugpy3581: [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 zstdmt3582: ##[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 exists3583: Successfully saved cache3584: ##[endgroup]3585: ##[group]Save cache for external-rules_python++python+python_3_9_x86_64-unknown-linux-gnu3586: [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 zstdmt3587: ##[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 exists3588: Successfully saved cache3589: ##[endgroup]3590: ##[group]Save cache for external-rules_rust3591: [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 zstdmt3592: ##[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 exists3593: Successfully saved cache3594: ##[endgroup]3595: ##[group]Save cache for external-rust_linux_x86_64__x86_64-unknown-linux-gnu__stable_tools3596: [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 zstdmt3597: ##[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
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
User description
Description
Therefore this PR does:
ErrorHandler
and the related unit testsErrorHandler
to decode an errorLet'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 aHttpResponse
into aResponse
with the knowledge of the protocol.The
ErrorHandler
should only work with thisResponse
regardless of the used protocol and not try to guess what theHttpResponse
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
Checklist
PR Type
Enhancement, Tests
Description
ErrorHandler
class by removing unused code, constructors, and methods.W3CHttpResponseCodec
to handle gateway errors by settingWebDriverException
.ErrorHandlerTest
to align with the newErrorHandler
implementation.ErrorHandler
.Changes walkthrough 📝
ErrorHandler.java
Simplified ErrorHandler class by removing unused code.
java/src/org/openqa/selenium/remote/ErrorHandler.java
ErrorHandler
class by removing redundant methods andconstructors.
WebDriverException
directly.W3CHttpResponseCodec.java
Updated W3CHttpResponseCodec error handling.
java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java
WebDriverException
for gateway errors.ErrorHandlerTest.java
Simplified ErrorHandler tests.
java/test/org/openqa/selenium/remote/ErrorHandlerTest.java
ErrorHandler
.ErrorHandler
implementation.
RemotableByTest.java
Updated RemotableByTest for new ErrorHandler implementation.
java/test/org/openqa/selenium/remote/RemotableByTest.java
ErrorHandler
implementation.
RemoteWebDriverUnitTest.java
Updated RemoteWebDriverUnitTest for new ErrorHandler messages.
java/test/org/openqa/selenium/remote/RemoteWebDriverUnitTest.java
ErrorHandler
.RemoteWebElementTest.java
Updated RemoteWebElementTest for new ErrorHandler messages.
java/test/org/openqa/selenium/remote/RemoteWebElementTest.java
ErrorHandler
.W3CHttpResponseCodecTest.java
Updated W3CHttpResponseCodecTest for new error handling.
java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java
WebDriverException
instances.