SeleniumHQ / selenium

A browser automation framework and ecosystem.
https://selenium.dev
Apache License 2.0
29.77k stars 8.02k forks source link

[java] remove unused code from ErrorHandler #14195

Open joerg1985 opened 1 week ago

joerg1985 commented 1 week ago

User description

Description

Therefore this PR does:

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

Checklist


PR Type

Enhancement, Tests


Description


Changes walkthrough πŸ“

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

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

    java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java
  • Removed handling for HTTP_BAD_METHOD.
  • Updated error handling to set WebDriverException for gateway errors.
  • +3/-7     
    Tests
    ErrorHandlerTest.java
    Simplified ErrorHandler tests.                                                     

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

    java/test/org/openqa/selenium/remote/RemotableByTest.java
  • Updated error response creation to match new ErrorHandler
    implementation.
  • +5/-3     
    RemoteWebDriverUnitTest.java
    Updated RemoteWebDriverUnitTest for new ErrorHandler messages.

    java/test/org/openqa/selenium/remote/RemoteWebDriverUnitTest.java
  • Updated test assertions to match new error messages from ErrorHandler.

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

    java/test/org/openqa/selenium/remote/RemoteWebElementTest.java
  • Updated test assertions to match new error messages from ErrorHandler.

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

    java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java
  • Updated test assertions to check for WebDriverException instances.
  • +2/-2     

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

    codiumai-pr-agent-pro[bot] commented 1 week ago

    PR Reviewer Guide πŸ”

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

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Enhancement
    Handle different HTTP errors explicitly for better error differentiation ___ **Consider handling other HTTP error statuses explicitly to provide more specific error
    messages or recovery options.** [java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java [90-95]](https://github.com/SeleniumHQ/selenium/pull/14195/files#diff-b6b196c558f4dfb2da9cf307f0cc0a79b6ec6fe457199f439427ee26ebbc3679R90-R95) ```diff -if (HTTP_GATEWAY_TIMEOUT == encodedResponse.getStatus() - || HTTP_BAD_GATEWAY == encodedResponse.getStatus()) { - response.setState("unknown error"); - response.setStatus(ErrorCodes.UNHANDLED_ERROR); - response.setValue(new WebDriverException("http gateway error: " + encodedResponse.getStatus())); +switch (encodedResponse.getStatus()) { + case HTTP_GATEWAY_TIMEOUT: + response.setState("gateway timeout"); + response.setStatus(ErrorCodes.TIMEOUT); + response.setValue(new WebDriverException("Gateway timeout error.")); + break; + case HTTP_BAD_GATEWAY: + response.setState("bad gateway"); + response.setStatus(ErrorCodes.SERVER_ERROR); + response.setValue(new WebDriverException("Bad gateway error.")); + break; + default: + response.setState("unknown error"); + response.setStatus(ErrorCodes.UNHANDLED_ERROR); + response.setValue(new WebDriverException("Unhandled HTTP error: " + encodedResponse.getStatus())); + break; } ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 9 Why: Explicitly handling different HTTP error statuses provides more specific error messages and can offer better recovery options. This enhances the robustness and clarity of error handling.
    9
    Add a check for the response state before throwing the exception ___ **Consider verifying the state of the Response object in
    testShouldThrowAVanillaWebDriverExceptionIfServerDoesNotProvideAValue to ensure it matches
    expected error conditions before asserting the type and message of the exception.** [java/test/org/openqa/selenium/remote/ErrorHandlerTest.java [73-76]](https://github.com/SeleniumHQ/selenium/pull/14195/files#diff-a9fcdf51f1517497dcc80199f96eee4c8822014e465076a66010d7814f435f04R73-R76) ```diff +assertThat(response.getState()).isEqualTo("unknown error"); assertThatExceptionOfType(WebDriverException.class) .isThrownBy(() -> handler.throwIfResponseFailed(response, 123)) .withNoCause() .withMessageContaining(new WebDriverException().getMessage()); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 8 Why: Adding a check for the response state before asserting the exception type and message ensures that the test is verifying the correct conditions, improving test accuracy and robustness.
    8
    Enhance exception handling by providing more detailed error messages ___ **Replace the generic WebDriverException with a more specific exception type or add
    additional context to the exception message to help with debugging.** [java/src/org/openqa/selenium/remote/ErrorHandler.java [41]](https://github.com/SeleniumHQ/selenium/pull/14195/files#diff-467a520a2e06eece3865efd61080187b1a7c0fd16559ac5ceab853c5b489c2d6R41-R41) ```diff -throw new WebDriverException(throwable); +throw new WebDriverException("Specific error occurred: " + throwable.getMessage(), throwable); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 8 Why: Providing more context in exception messages can significantly aid in debugging and understanding the root cause of errors. This suggestion improves the clarity of the exception message.
    8
    Use a specific error message for exceptions to aid in debugging ___ **In testShouldThrowAVanillaWebDriverExceptionIfServerDoesNotProvideAValue, ensure that the
    message from new WebDriverException().getMessage() is meaningful and not generic, as it
    might not provide useful debugging information.** [java/test/org/openqa/selenium/remote/ErrorHandlerTest.java [73-76]](https://github.com/SeleniumHQ/selenium/pull/14195/files#diff-a9fcdf51f1517497dcc80199f96eee4c8822014e465076a66010d7814f435f04R73-R76) ```diff +String expectedMessage = "Specific error message related to the context"; assertThatExceptionOfType(WebDriverException.class) .isThrownBy(() -> handler.throwIfResponseFailed(response, 123)) .withNoCause() - .withMessageContaining(new WebDriverException().getMessage()); + .withMessageContaining(expectedMessage); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 6 Why: Using a specific error message can aid in debugging by providing more context. However, the suggestion assumes that a meaningful message can be determined, which may not always be straightforward.
    6
    Reintroduce error code mappings for more precise error handling ___ **Consider reintroducing the ErrorCodes object to map specific exceptions to error codes,
    enhancing the granularity of error handling.** [java/src/org/openqa/selenium/remote/ErrorHandler.java [25]](https://github.com/SeleniumHQ/selenium/pull/14195/files#diff-467a520a2e06eece3865efd61080187b1a7c0fd16559ac5ceab853c5b489c2d6R25-R25) ```diff -public ErrorHandler() {} +private final ErrorCodes errorCodes; +public ErrorHandler() { + this.errorCodes = new ErrorCodes(); +} + ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 6 Why: Reintroducing the `ErrorCodes` object can enhance the granularity of error handling, but it may also reintroduce complexity that was intentionally removed. The benefit depends on the specific use case.
    6
    Possible issue
    Validate the 'state' parameter to prevent invalid 'Response' objects ___ **For the method createResponse(String state, Object value), consider checking if state is
    null or empty and throw an IllegalArgumentException to prevent creating invalid Response
    objects.** [java/test/org/openqa/selenium/remote/ErrorHandlerTest.java [84-87]](https://github.com/SeleniumHQ/selenium/pull/14195/files#diff-a9fcdf51f1517497dcc80199f96eee4c8822014e465076a66010d7814f435f04R84-R87) ```diff +if (state == null || state.isEmpty()) { + throw new IllegalArgumentException("State cannot be null or empty"); +} Response response = new Response(); response.setState(state); response.setValue(value); return response; ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 9 Why: Adding validation for the 'state' parameter prevents the creation of invalid 'Response' objects, which can help catch errors early and improve code reliability.
    9
    Best practice
    Use a more specific exception type for detailed error handling ___ **In testShouldThrowIfResponseWasNotSuccess, use a more specific exception type than
    WebDriverException if applicable, to provide more detailed error handling.** [java/test/org/openqa/selenium/remote/ErrorHandlerTest.java [65-67]](https://github.com/SeleniumHQ/selenium/pull/14195/files#diff-a9fcdf51f1517497dcc80199f96eee4c8822014e465076a66010d7814f435f04R65-R67) ```diff -assertThatExceptionOfType(WebDriverException.class) +assertThatExceptionOfType(SpecificException.class) // Replace SpecificException with the actual exception class .isThrownBy(() -> handler.throwIfResponseFailed(response, 123)) .withNoCause(); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: Using a more specific exception type can provide more detailed error handling and better insight into the nature of the failure. However, it requires knowledge of the specific exceptions that might be thrown.
    7
    Add logging for better error traceability ___ **Add logging before throwing exceptions to help trace the error causes more effectively.** [java/src/org/openqa/selenium/remote/ErrorHandler.java [44]](https://github.com/SeleniumHQ/selenium/pull/14195/files#diff-467a520a2e06eece3865efd61080187b1a7c0fd16559ac5ceab853c5b489c2d6R44-R44) ```diff +LOG.error("Response failed with unknown status: " + response.getState()); throw new WebDriverException("response failed with unknown status: " + response.getState()); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: Adding logging before throwing exceptions can help trace the error causes more effectively, which is a good practice for debugging and monitoring.
    7
    codiumai-pr-agent-pro[bot] commented 1 week ago

    CI Failure Feedback 🧐

    (Checks updated until commit https://github.com/SeleniumHQ/selenium/commit/6255037b6947761f67e194c24e95a70e219bc534)

    **Action:** JavaScript / Browser Tests (firefox) / Browser Tests (firefox)
    **Failed stage:** [Run Bazel](https://github.com/SeleniumHQ/selenium/actions/runs/9685117577/job/26724892075) [❌]
    **Failed test name:** test-firefox-options-test.js-firefox
    **Failure summary:** The action failed because the test test-firefox-options-test.js-firefox failed. The test failed due
    to multiple TimeoutError exceptions, indicating that the test was unable to locate the element with
    the CSS selector *[id="webextensions-selenium-example"] within the specified timeout period.
    Relevant error logs: ```yaml 1: ##[group]Operating System 2: Ubuntu ... 972: Package 'php-symfony-debug-bundle' is not installed, so not removed 973: Package 'php-symfony-dependency-injection' is not installed, so not removed 974: Package 'php-symfony-deprecation-contracts' is not installed, so not removed 975: Package 'php-symfony-discord-notifier' is not installed, so not removed 976: Package 'php-symfony-doctrine-bridge' is not installed, so not removed 977: Package 'php-symfony-doctrine-messenger' is not installed, so not removed 978: Package 'php-symfony-dom-crawler' is not installed, so not removed 979: Package 'php-symfony-dotenv' is not installed, so not removed 980: Package 'php-symfony-error-handler' is not installed, so not removed ... 1898: Setting up fonts-terminus-otb (4.48-3.1) ... 1899: Processing triggers for install-info (6.8-4build1) ... 1900: Processing triggers for mailcap (3.70+nmu1ubuntu1) ... 1901: Processing triggers for fontconfig (2.13.1-4.2ubuntu5) ... 1902: Processing triggers for hicolor-icon-theme (0.17-2) ... 1903: Processing triggers for libc-bin (2.35-0ubuntu3.8) ... 1904: Processing triggers for man-db (2.10.2-1) ... 1905: Processing triggers for menu (2.1.47ubuntu4) ... 1906: /usr/share/menu/psmisc: 1: Syntax error: word unexpected (expecting ")") 1907: /usr/share/menu/microsoft-edge.menu: 1: Syntax error: word unexpected (expecting ")") 1908: /usr/share/menu/tcl8.6: 1: Syntax error: word unexpected (expecting ")") 1909: /usr/share/menu/dash: 1: Syntax error: word unexpected (expecting ")") 1910: /usr/share/menu/tk8.6: 1: Syntax error: word unexpected (expecting ")") 1911: /usr/share/menu/bc: 1: Syntax error: word unexpected (expecting ")") 1912: /usr/share/menu/monodoc-http: 1: Syntax error: word unexpected (expecting ")") 1913: /usr/share/menu/google-chrome.menu: 1: Syntax error: word unexpected (expecting ")") 1914: /usr/share/menu/bash: 1: Syntax error: word unexpected (expecting ")") 1915: /usr/share/menu/telnet: 1: Syntax error: word unexpected (expecting ")") 1916: /usr/share/menu/procps: 1: Syntax error: word unexpected (expecting ")") 1917: NEEDRESTART-VER: 3.5 1918: NEEDRESTART-KCUR: 6.5.0-1022-azure 1919: NEEDRESTART-KEXP: 6.5.0-1022-azure 1920: NEEDRESTART-KSTA: 1 1921: Warning: Failed to open file(/usr/share/fluxbox/nls/C.UTF-8/fluxbox.cat) 1922: for translation, using default messages. 1923: Failed to read: session.ignoreBorder 1924: Setting default value 1925: Failed to read: session.forcePseudoTransparency 1926: Setting default value 1927: Failed to read: session.colorsPerChannel 1928: Setting default value 1929: Failed to read: session.doubleClickInterval 1930: Setting default value 1931: Failed to read: session.tabPadding 1932: Setting default value 1933: Failed to read: session.styleOverlay 1934: Setting default value 1935: Failed to read: session.slitlistFile 1936: Setting default value 1937: Failed to read: session.appsFile 1938: Setting default value 1939: Failed to read: session.tabsAttachArea 1940: Setting default value 1941: Failed to read: session.cacheLife 1942: Setting default value 1943: Failed to read: session.cacheMax 1944: Setting default value 1945: Failed to read: session.autoRaiseDelay 1946: Setting default value 1947: Failed to read: session.ignoreBorder 1948: Setting default value 1949: Failed to read: session.forcePseudoTransparency 1950: Setting default value 1951: Failed to read: session.colorsPerChannel 1952: Setting default value 1953: Failed to read: session.doubleClickInterval 1954: Setting default value 1955: Failed to read: session.tabPadding 1956: Setting default value 1957: Failed to read: session.styleOverlay 1958: Setting default value 1959: Failed to read: session.slitlistFile 1960: Setting default value 1961: Failed to read: session.appsFile 1962: Setting default value 1963: Failed to read: session.tabsAttachArea 1964: Setting default value 1965: Failed to read: session.cacheLife 1966: Setting default value 1967: Failed to read: session.cacheMax 1968: Setting default value 1969: Failed to read: session.autoRaiseDelay 1970: Setting default value 1971: Failed to read: session.screen0.opaqueMove 1972: Setting default value 1973: Failed to read: session.screen0.fullMaximization 1974: Setting default value 1975: Failed to read: session.screen0.maxIgnoreIncrement 1976: Setting default value 1977: Failed to read: session.screen0.maxDisableMove 1978: Setting default value 1979: Failed to read: session.screen0.maxDisableResize 1980: Setting default value 1981: Failed to read: session.screen0.workspacewarping 1982: Setting default value 1983: Failed to read: session.screen0.showwindowposition 1984: Setting default value 1985: Failed to read: session.screen0.autoRaise 1986: Setting default value 1987: Failed to read: session.screen0.clickRaises 1988: Setting default value 1989: Failed to read: session.screen0.defaultDeco 1990: Setting default value 1991: Failed to read: session.screen0.tab.placement 1992: Setting default value 1993: Failed to read: session.screen0.windowMenu 1994: Setting default value 1995: Failed to read: session.screen0.noFocusWhileTypingDelay 1996: Setting default value 1997: Failed to read: session.screen0.workspaces 1998: Setting default value 1999: Failed to read: session.screen0.edgeSnapThreshold 2000: Setting default value 2001: Failed to read: session.screen0.window.focus.alpha 2002: Setting default value 2003: Failed to read: session.screen0.window.unfocus.alpha 2004: Setting default value 2005: Failed to read: session.screen0.menu.alpha 2006: Setting default value 2007: Failed to read: session.screen0.menuDelay 2008: Setting default value 2009: Failed to read: session.screen0.tab.width 2010: Setting default value 2011: Failed to read: session.screen0.tooltipDelay 2012: Setting default value 2013: Failed to read: session.screen0.allowRemoteActions 2014: Setting default value 2015: Failed to read: session.screen0.clientMenu.usePixmap 2016: Setting default value 2017: Failed to read: session.screen0.tabs.usePixmap 2018: Setting default value 2019: Failed to read: session.screen0.tabs.maxOver 2020: Setting default value 2021: Failed to read: session.screen0.tabs.intitlebar 2022: Setting default value 2023: Failed to read: session.screen0.focusModel 2024: Setting default value 2025: Failed to read: session.screen0.tabFocusModel 2026: Setting default value 2027: Failed to read: session.screen0.focusNewWindows 2028: Setting default value 2029: Failed to read: session.screen0.focusSameHead 2030: Setting default value 2031: Failed to read: session.screen0.rowPlacementDirection 2032: Setting default value 2033: Failed to read: session.screen0.colPlacementDirection 2034: Setting default value 2035: Failed to read: session.screen0.windowPlacement 2036: Setting default value 2037: Failed to read: session.ignoreBorder 2038: Setting default value 2039: Failed to read: session.forcePseudoTransparency 2040: Setting default value 2041: Failed to read: session.colorsPerChannel 2042: Setting default value 2043: Failed to read: session.doubleClickInterval 2044: Setting default value 2045: Failed to read: session.tabPadding 2046: Setting default value 2047: Failed to read: session.styleOverlay 2048: Setting default value 2049: Failed to read: session.slitlistFile 2050: Setting default value 2051: Failed to read: session.appsFile 2052: Setting default value 2053: Failed to read: session.tabsAttachArea 2054: Setting default value 2055: Failed to read: session.cacheLife 2056: Setting default value 2057: Failed to read: session.cacheMax 2058: Setting default value 2059: Failed to read: session.autoRaiseDelay 2060: Setting default value 2061: Failed to read: session.screen0.opaqueMove 2062: Setting default value 2063: Failed to read: session.screen0.fullMaximization 2064: Setting default value 2065: Failed to read: session.screen0.maxIgnoreIncrement 2066: Setting default value 2067: Failed to read: session.screen0.maxDisableMove 2068: Setting default value 2069: Failed to read: session.screen0.maxDisableResize 2070: Setting default value 2071: Failed to read: session.screen0.workspacewarping 2072: Setting default value 2073: Failed to read: session.screen0.showwindowposition 2074: Setting default value 2075: Failed to read: session.screen0.autoRaise 2076: Setting default value 2077: Failed to read: session.screen0.clickRaises 2078: Setting default value 2079: Failed to read: session.screen0.defaultDeco 2080: Setting default value 2081: Failed to read: session.screen0.tab.placement 2082: Setting default value 2083: Failed to read: session.screen0.windowMenu 2084: Setting default value 2085: Failed to read: session.screen0.noFocusWhileTypingDelay 2086: Setting default value 2087: Failed to read: session.screen0.workspaces 2088: Setting default value 2089: Failed to read: session.screen0.edgeSnapThreshold 2090: Setting default value 2091: Failed to read: session.screen0.window.focus.alpha 2092: Setting default value 2093: Failed to read: session.screen0.window.unfocus.alpha 2094: Setting default value 2095: Failed to read: session.screen0.menu.alpha 2096: Setting default value 2097: Failed to read: session.screen0.menuDelay 2098: Setting default value 2099: Failed to read: session.screen0.tab.width 2100: Setting default value 2101: Failed to read: session.screen0.tooltipDelay 2102: Setting default value 2103: Failed to read: session.screen0.allowRemoteActions 2104: Setting default value 2105: Failed to read: session.screen0.clientMenu.usePixmap 2106: Setting default value 2107: Failed to read: session.screen0.tabs.usePixmap 2108: Setting default value 2109: Failed to read: session.screen0.tabs.maxOver 2110: Setting default value 2111: Failed to read: session.screen0.tabs.intitlebar 2112: Setting default value 2113: Failed to read: session.screen0.focusModel 2114: Setting default value 2115: Failed to read: session.screen0.tabFocusModel 2116: Setting default value 2117: Failed to read: session.screen0.focusNewWindows 2118: Setting default value 2119: Failed to read: session.screen0.focusSameHead 2120: Setting default value 2121: Failed to read: session.screen0.rowPlacementDirection 2122: Setting default value 2123: Failed to read: session.screen0.colPlacementDirection 2124: Setting default value 2125: Failed to read: session.screen0.windowPlacement 2126: Setting default value 2127: Failed to read: session.screen0.slit.acceptKdeDockapps 2128: Setting default value 2129: Failed to read: session.screen0.slit.autoHide 2130: Setting default value 2131: Failed to read: session.screen0.slit.maxOver 2132: Setting default value 2133: Failed to read: session.screen0.slit.placement 2134: Setting default value 2135: Failed to read: session.screen0.slit.alpha 2136: Setting default value 2137: Failed to read: session.screen0.slit.onhead 2138: Setting default value 2139: Failed to read: session.screen0.slit.layer 2140: Setting default value 2141: Failed to read: session.screen0.toolbar.autoHide 2142: Setting default value 2143: Failed to read: session.screen0.toolbar.maxOver 2144: Setting default value 2145: Failed to read: session.screen0.toolbar.visible 2146: Setting default value 2147: Failed to read: session.screen0.toolbar.alpha 2148: Setting default value 2149: Failed to read: session.screen0.toolbar.layer 2150: Setting default value 2151: Failed to read: session.screen0.toolbar.onhead 2152: Setting default value 2153: Failed to read: session.screen0.toolbar.placement 2154: Setting default value 2155: Failed to read: session.screen0.toolbar.height 2156: Setting default value 2157: Failed to read: session.screen0.iconbar.mode 2158: Setting default value 2159: Failed to read: session.screen0.iconbar.alignment 2160: Setting default value 2161: Failed to read: session.screen0.iconbar.iconWidth 2162: Setting default value 2163: Failed to read: session.screen0.iconbar.iconTextPadding 2164: Setting default value 2165: Failed to read: session.screen0.iconbar.usePixmap ... 2312: [3,902 / 3,932] 26 / 56 tests; Testing //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox; 282s disk-cache, local ... (4 actions, 3 running) 2313: [3,903 / 3,932] 27 / 56 tests; Testing //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox; 284s disk-cache, local ... (4 actions, 2 running) 2314: [3,903 / 3,932] 27 / 56 tests; Testing //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox; 289s disk-cache, local ... (4 actions, 2 running) 2315: [3,904 / 3,932] 28 / 56 tests; Testing //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox; 291s disk-cache, local ... (4 actions, 1 running) 2316: [3,904 / 3,932] 28 / 56 tests; Testing //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox; 301s disk-cache, local ... (4 actions, 1 running) 2317: [3,904 / 3,932] 28 / 56 tests; Testing //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox; 331s disk-cache, local ... (4 actions, 1 running) 2318: [3,904 / 3,932] 28 / 56 tests; Testing //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox; 385s disk-cache, local ... (4 actions, 2 running) 2319: FAIL: //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-options-test.js-firefox/test.log) 2320: FAILED: //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox (Summary) ... 2338: βœ” can start Firefox with custom preferences (1837ms) 2339: 2) can add extra prefs on top of an existing profile 2340: addExtensions 2341: 3) can add extension to brand new profile 2342: 4) can add extension to custom profile 2343: 5) can addExtensions and setPreference 2344: 6) can load .zip webextensions 2345: 5 passing (2m) 2346: 6 failing 2347: 1) [firefox] 2348: firefox 2349: Options 2350: setProfile 2351: use profile with extension: 2352: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2353: Wait timed out after 5085ms 2354: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2355: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2356: 2) [firefox] 2357: firefox 2358: Options 2359: setPreference 2360: can add extra prefs on top of an existing profile: 2361: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2362: Wait timed out after 5094ms 2363: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2364: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2365: 3) [firefox] 2366: firefox 2367: Options 2368: addExtensions 2369: can add extension to brand new profile: 2370: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2371: Wait timed out after 5106ms 2372: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2373: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2374: 4) [firefox] 2375: firefox 2376: Options 2377: addExtensions 2378: can add extension to custom profile: 2379: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2380: Wait timed out after 5088ms 2381: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2382: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2383: 5) [firefox] 2384: firefox 2385: Options 2386: addExtensions 2387: can addExtensions and setPreference: 2388: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2389: Wait timed out after 5092ms 2390: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2391: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2392: 6) [firefox] 2393: firefox 2394: Options 2395: addExtensions 2396: can load .zip webextensions: 2397: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) ... 2415: βœ” can start Firefox with custom preferences (1835ms) 2416: 2) can add extra prefs on top of an existing profile 2417: addExtensions 2418: 3) can add extension to brand new profile 2419: 4) can add extension to custom profile 2420: 5) can addExtensions and setPreference 2421: 6) can load .zip webextensions 2422: 5 passing (2m) 2423: 6 failing 2424: 1) [firefox] 2425: firefox 2426: Options 2427: setProfile 2428: use profile with extension: 2429: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2430: Wait timed out after 5090ms 2431: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2432: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2433: 2) [firefox] 2434: firefox 2435: Options 2436: setPreference 2437: can add extra prefs on top of an existing profile: 2438: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2439: Wait timed out after 5090ms 2440: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2441: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2442: 3) [firefox] 2443: firefox 2444: Options 2445: addExtensions 2446: can add extension to brand new profile: 2447: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2448: Wait timed out after 5087ms 2449: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2450: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2451: 4) [firefox] 2452: firefox 2453: Options 2454: addExtensions 2455: can add extension to custom profile: 2456: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2457: Wait timed out after 5091ms 2458: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2459: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2460: 5) [firefox] 2461: firefox 2462: Options 2463: addExtensions 2464: can addExtensions and setPreference: 2465: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2466: Wait timed out after 5094ms 2467: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2468: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2469: 6) [firefox] 2470: firefox 2471: Options 2472: addExtensions 2473: can load .zip webextensions: 2474: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) ... 2492: βœ” can start Firefox with custom preferences (1808ms) 2493: 2) can add extra prefs on top of an existing profile 2494: addExtensions 2495: 3) can add extension to brand new profile 2496: 4) can add extension to custom profile 2497: 5) can addExtensions and setPreference 2498: 6) can load .zip webextensions 2499: 5 passing (2m) 2500: 6 failing 2501: 1) [firefox] 2502: firefox 2503: Options 2504: setProfile 2505: use profile with extension: 2506: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2507: Wait timed out after 5090ms 2508: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2509: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2510: 2) [firefox] 2511: firefox 2512: Options 2513: setPreference 2514: can add extra prefs on top of an existing profile: 2515: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2516: Wait timed out after 5103ms 2517: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2518: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2519: 3) [firefox] 2520: firefox 2521: Options 2522: addExtensions 2523: can add extension to brand new profile: 2524: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2525: Wait timed out after 5107ms 2526: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2527: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2528: 4) [firefox] 2529: firefox 2530: Options 2531: addExtensions 2532: can add extension to custom profile: 2533: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2534: Wait timed out after 5085ms 2535: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2536: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2537: 5) [firefox] 2538: firefox 2539: Options 2540: addExtensions 2541: can addExtensions and setPreference: 2542: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2543: Wait timed out after 5081ms 2544: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2545: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2546: 6) [firefox] 2547: firefox 2548: Options 2549: addExtensions 2550: can load .zip webextensions: 2551: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2552: Wait timed out after 5091ms 2553: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2554: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2555: ================================================================================ 2556: [3,905 / 3,932] 29 / 56 tests, 1 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-chrome-options-test.js-firefox; 104s ... (4 actions, 1 running) 2557: [3,905 / 3,932] 29 / 56 tests, 1 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-chrome-options-test.js-firefox; 114s ... (4 actions, 1 running) 2558: [3,905 / 3,932] 29 / 56 tests, 1 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-webComponent-test.js-firefox; 118s ... (4 actions, 2 running) 2559: [3,908 / 3,932] 32 / 56 tests, 1 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-remote-test.js-firefox ... (4 actions, 1 running) 2560: [3,910 / 3,932] 34 / 56 tests, 1 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-ie-options-test.js-firefox ... (4 actions, 1 running) 2561: [3,910 / 3,932] 34 / 56 tests, 1 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-ie-options-test.js-firefox; 12s ... (4 actions, 1 running) 2562: [3,910 / 3,932] 34 / 56 tests, 1 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-ie-options-test.js-firefox; 42s ... (4 actions, 1 running) 2563: [3,910 / 3,932] 34 / 56 tests, 1 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-safari-test.js-firefox; 77s ... (4 actions, 2 running) 2564: FAIL: //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-addon-test.js-firefox/test_attempts/attempt_1.log) 2565: [3,912 / 3,932] 36 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 78s disk-cache, local ... (4 actions, 2 running) 2566: [3,912 / 3,932] 36 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 81s disk-cache, local ... (4 actions, 2 running) 2567: [3,913 / 3,932] 37 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 82s disk-cache, local ... (4 actions, 1 running) 2568: [3,913 / 3,932] 37 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 92s disk-cache, local ... (4 actions, 1 running) 2569: [3,913 / 3,932] 37 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 122s disk-cache, local ... (4 actions, 1 running) 2570: [3,913 / 3,932] 37 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 158s disk-cache, local ... (4 actions, 2 running) 2571: FAIL: //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-addon-test.js-firefox/test_attempts/attempt_2.log) 2572: [3,913 / 3,932] 37 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 159s disk-cache, local ... (4 actions, 2 running) 2573: [3,913 / 3,932] 37 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 161s disk-cache, local ... (4 actions, 3 running) 2574: [3,915 / 3,932] 39 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 163s disk-cache, local ... (4 actions, 2 running) 2575: [3,915 / 3,932] 39 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 167s disk-cache, local ... (4 actions, 2 running) 2576: [3,916 / 3,932] 40 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 169s disk-cache, local ... (4 actions, 1 running) 2577: [3,916 / 3,932] 40 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 178s disk-cache, local ... (4 actions, 1 running) 2578: [3,916 / 3,932] 40 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 208s disk-cache, local ... (4 actions, 1 running) 2579: [3,916 / 3,932] 40 / 56 tests, 1 failed; Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox; 244s disk-cache, local ... (4 actions, 2 running) 2580: FAIL: //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-addon-test.js-firefox/test.log) 2581: ==================== Test output for //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox: 2582: [INFO] Running tests against [firefox] 2583: [firefox] 2584: firefox 2585: installAddon 2586: FAILED: //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox (Summary) ... 2589: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-addon-test.js-firefox/test_attempts/attempt_1.log 2590: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-addon-test.js-firefox/test_attempts/attempt_2.log 2591: INFO: From Testing //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox: 2592: 2) installs and uninstalls by unsigned zip file 2593: 3) installs and uninstalls by signed zip file 2594: 4) installs and uninstalls by unsigned directory 2595: 5) installs and uninstalls by signed directory 2596: 0 passing (1m) 2597: 5 failing 2598: 1) [firefox] 2599: firefox 2600: installAddon 2601: installs and uninstalls by xpi file: 2602: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2603: Wait timed out after 5085ms 2604: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2605: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2606: 2) [firefox] 2607: firefox 2608: installAddon 2609: installs and uninstalls by unsigned zip file: 2610: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2611: Wait timed out after 5067ms 2612: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2613: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2614: 3) [firefox] 2615: firefox 2616: installAddon 2617: installs and uninstalls by signed zip file: 2618: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2619: Wait timed out after 5073ms 2620: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2621: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2622: 4) [firefox] 2623: firefox 2624: installAddon 2625: installs and uninstalls by unsigned directory: 2626: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2627: Wait timed out after 5067ms 2628: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2629: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2630: 5) [firefox] 2631: firefox 2632: installAddon 2633: installs and uninstalls by signed directory: 2634: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) ... 2642: firefox 2643: installAddon 2644: 1) installs and uninstalls by xpi file 2645: 2) installs and uninstalls by unsigned zip file 2646: 3) installs and uninstalls by signed zip file 2647: 4) installs and uninstalls by unsigned directory 2648: 5) installs and uninstalls by signed directory 2649: 0 passing (1m) 2650: 5 failing 2651: 1) [firefox] 2652: firefox 2653: installAddon 2654: installs and uninstalls by xpi file: 2655: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2656: Wait timed out after 5072ms 2657: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2658: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2659: 2) [firefox] 2660: firefox 2661: installAddon 2662: installs and uninstalls by unsigned zip file: 2663: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2664: Wait timed out after 5069ms 2665: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2666: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2667: 3) [firefox] 2668: firefox 2669: installAddon 2670: installs and uninstalls by signed zip file: 2671: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2672: Wait timed out after 5076ms 2673: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2674: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2675: 4) [firefox] 2676: firefox 2677: installAddon 2678: installs and uninstalls by unsigned directory: 2679: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2680: Wait timed out after 5080ms 2681: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2682: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2683: 5) [firefox] 2684: firefox 2685: installAddon 2686: installs and uninstalls by signed directory: 2687: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) ... 2695: firefox 2696: installAddon 2697: 1) installs and uninstalls by xpi file 2698: 2) installs and uninstalls by unsigned zip file 2699: 3) installs and uninstalls by signed zip file 2700: 4) installs and uninstalls by unsigned directory 2701: 5) installs and uninstalls by signed directory 2702: 0 passing (1m) 2703: 5 failing 2704: 1) [firefox] 2705: firefox 2706: installAddon 2707: installs and uninstalls by xpi file: 2708: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2709: Wait timed out after 5066ms 2710: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2711: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2712: 2) [firefox] 2713: firefox 2714: installAddon 2715: installs and uninstalls by unsigned zip file: 2716: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2717: Wait timed out after 5069ms 2718: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2719: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2720: 3) [firefox] 2721: firefox 2722: installAddon 2723: installs and uninstalls by signed zip file: 2724: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2725: Wait timed out after 5083ms 2726: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2727: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2728: 4) [firefox] 2729: firefox 2730: installAddon 2731: installs and uninstalls by unsigned directory: 2732: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2733: Wait timed out after 5070ms 2734: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2735: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2736: 5) [firefox] 2737: firefox 2738: installAddon 2739: installs and uninstalls by signed directory: 2740: TimeoutError: Waiting for element to be located By(css selector, *[id="webextensions-selenium-example"]) 2741: Wait timed out after 5090ms 2742: at /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/lib/webdriver.js:913:22 2743: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 2744: ================================================================================ 2745: [3,918 / 3,932] 42 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-frame-test.js-firefox; 78s ... (4 actions, 1 running) 2746: [3,918 / 3,932] 42 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-bidi-local-value-test.js-firefox ... (4 actions, 2 running) 2747: [3,919 / 3,932] 43 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-bidi-local-value-test.js-firefox; 4s ... (4 actions, 1 running) 2748: [3,919 / 3,932] 43 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-logging-test.js-firefox; 5s ... (4 actions, 2 running) 2749: [3,920 / 3,932] 44 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-logging-test.js-firefox; 7s ... (4 actions, 1 running) 2750: [3,920 / 3,932] 44 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-logging-test.js-firefox; 17s ... (4 actions, 1 running) 2751: [3,920 / 3,932] 44 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-execute-script-test.js-firefox; 36s ... (4 actions, 2 running) 2752: [3,922 / 3,932] 46 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-upload-test.js-firefox; 35s ... (4 actions, 1 running) 2753: [3,922 / 3,932] 46 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-stale-element-test.js-firefox; 4s ... (4 actions, 2 running) 2754: [3,923 / 3,932] 47 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-stale-element-test.js-firefox; 5s ... (4 actions, 1 running) 2755: [3,923 / 3,932] 47 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-edge-options-test.js-firefox; 7s ... (4 actions, 2 running) 2756: [3,924 / 3,932] 48 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-edge-options-test.js-firefox; 9s ... (4 actions, 1 running) 2757: [3,924 / 3,932] 48 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-lib-api-test.js-firefox; 6s ... (4 actions, 2 running) 2758: [3,926 / 3,932] 50 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-lib-capabilities-test.js-firefox; 4s ... (4 actions, 1 running) 2759: [3,926 / 3,932] 50 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-fingerprint-test.js-firefox ... (4 actions, 2 running) 2760: [3,929 / 3,932] 53 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-bidi-add-intercept-parameters-test.js-firefox ... (3 actions, 2 running) 2761: [3,930 / 3,932] 54 / 56 tests, 2 failed; [Sched] Testing //javascript/node/selenium-webdriver:test-bidi-add-intercept-parameters-test.js-firefox ... (2 actions, 1 running) 2762: [3,930 / 3,932] 54 / 56 tests, 2 failed; Testing //javascript/node/selenium-webdriver:test-bidi-storage-test.js-firefox; 10s disk-cache, local ... (2 actions running) 2763: [3,931 / 3,932] 55 / 56 tests, 2 failed; Testing //javascript/node/selenium-webdriver:test-bidi-add-intercept-parameters-test.js-firefox; 1s disk-cache, local 2764: [3,931 / 3,932] 55 / 56 tests, 2 failed; Testing //javascript/node/selenium-webdriver:test-bidi-add-intercept-parameters-test.js-firefox; 11s disk-cache, local 2765: [3,931 / 3,932] 55 / 56 tests, 2 failed; Testing //javascript/node/selenium-webdriver:test-bidi-add-intercept-parameters-test.js-firefox; 14s disk-cache, local 2766: INFO: Found 78 targets and 56 test targets... 2767: INFO: Elapsed time: 1151.983s, Critical Path: 500.16s 2768: INFO: 3495 processes: 1719 disk cache hit, 1598 internal, 66 linux-sandbox, 112 local. 2769: INFO: Build completed, 2 tests FAILED, 3495 total actions ... 2816: //javascript/node/selenium-webdriver:test-remote-test.js-firefox PASSED in 0.4s 2817: //javascript/node/selenium-webdriver:test-safari-test.js-firefox PASSED in 0.4s 2818: //javascript/node/selenium-webdriver:test-select-test.js-firefox PASSED in 9.3s 2819: //javascript/node/selenium-webdriver:test-stale-element-test.js-firefox PASSED in 3.4s 2820: //javascript/node/selenium-webdriver:test-upload-test.js-firefox PASSED in 3.5s 2821: //javascript/node/selenium-webdriver:test-virtualAuthenticator-test.js-firefox PASSED in 0.5s 2822: //javascript/node/selenium-webdriver:test-webComponent-test.js-firefox PASSED in 0.4s 2823: //javascript/node/selenium-webdriver:test-window-test.js-firefox PASSED in 4.0s 2824: //javascript/node/selenium-webdriver:test-firefox-addon-test.js-firefox FAILED in 3 out of 3 in 77.2s 2825: Stats over 3 runs: max = 77.2s, min = 77.0s, avg = 77.2s, dev = 0.1s 2826: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-addon-test.js-firefox/test.log 2827: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-addon-test.js-firefox/test_attempts/attempt_1.log 2828: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-addon-test.js-firefox/test_attempts/attempt_2.log 2829: //javascript/node/selenium-webdriver:test-firefox-options-test.js-firefox FAILED in 3 out of 3 in 95.8s 2830: Stats over 3 runs: max = 95.8s, min = 95.7s, avg = 95.8s, dev = 0.0s 2831: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-options-test.js-firefox/test.log 2832: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-options-test.js-firefox/test_attempts/attempt_1.log 2833: /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/test-firefox-options-test.js-firefox/test_attempts/attempt_2.log 2834: Executed 56 out of 56 tests: 54 tests pass and 2 fail locally. 2835: There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are. 2836:  2837: ##[error]Process completed with exit code 3. ```

    ✨ CI feedback usage guide:
    The CI feedback tool (`/checks)` automatically triggers when a PR has a failed check. The tool analyzes the failed checks and provides several feedbacks: - Failed stage - Failed test name - Failure summary - Relevant error logs In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR: ``` /checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}" ``` where `{repo_name}` is the name of the repository, `{run_number}` is the run number of the failed check, and `{job_number}` is the job number of the failed check. #### Configuration options - `enable_auto_checks_feedback` - if set to true, the tool will automatically provide feedback when a check is failed. Default is true. - `excluded_checks_list` - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list. - `enable_help_text` - if set to true, the tool will provide a help message with the feedback. Default is true. - `persistent_comment` - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true. - `final_update_message` - if `persistent_comment` is true and updating a previous checks message, the tool will also create a new message: "Persistent checks updated to latest commit". Default is true. See more information about the `checks` tool in the [docs](https://pr-agent-docs.codium.ai/tools/ci_feedback/).