Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Fixing atom to capitalize text #13792

Conversation

diemol
Copy link
Member

@diemol diemol commented Apr 9, 2024

User description

Credit to @whimboo

Fixes #13779

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

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

Description

Motivation and Context

Types of changes

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

Checklist

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

Type

bug_fix


Description

  • Fixes an issue where the capitalize text transformation incorrectly capitalized text when underscores were present.
  • Ensures consistent capitalization across different browsers, including IE, by updating the regular expression used.

Changes walkthrough

Relevant files
Bug fix
dom.js
Fix Incorrect Capitalization in `capitalize` Text Transformation

javascript/atoms/dom.js

  • Updated the regular expression in capitalize text transformation to
    fix incorrect capitalization when underscores are used.
  • Removed the usage of Unicode regex that doesn't work in IE, aligning
    the regex for all browsers.
  • +1/-1     

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

    Copy link

    PR Description updated to latest commit (5bf228b)

    Copy link

    PR Review

    ⏱️ Estimated effort to review [1-5]

    2, because the change is focused on a specific functionality (text capitalization) within a single file and involves a relatively straightforward regex update. The logic is not complex, but understanding the context and ensuring the regex behaves as expected across different browsers requires some domain knowledge.

    🧪 Relevant tests

    No

    🔍 Possible issues

    Regex Compatibility: The updated regex /(^|\s|\b)(\S)/gu might not behave as expected in all browsers, especially older versions of IE. It's crucial to test this change across the browsers supported by Selenium.

    Edge Cases: The change assumes that capitalization should occur after any whitespace or word boundary. This might not cover all use cases or languages, especially those not using spaces as word delimiters.

    🔒 Security concerns

    No


    ✨ Review tool usage guide:

    Overview:
    The review tool scans the PR code changes, and generates a PR review which includes several types of feedbacks, such as possible PR issues, security threats and relevant test in the PR. More feedbacks can be added by configuring the tool.

    The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.

    • When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
    /review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...
    
    [pr_reviewer]
    some_config1=...
    some_config2=...
    

    See the review usage page for a comprehensive guide on using this tool.

    Copy link

    PR Code Suggestions

    CategorySuggestions                                                                                                                                                       
    Enhancement
    Improve regex pattern for more accurate text capitalization.

    Consider using a more specific regex pattern for capitalizing text. The current regex
    might not correctly capitalize words following punctuation or special characters. A more
    comprehensive approach could involve using Unicode property escapes to match word
    boundaries more accurately, ensuring compatibility across different languages and scripts.

    javascript/atoms/dom.js [1176]

    -var re = goog.userAgent.IE ? /(^|\s|\b)(\S)/g : /(^|\s|\b)(\S)/gu;
    +var re = goog.userAgent.IE ? /(^|\s|\p{P}|\b)(\p{L})/g : /(^|\s|\p{P}|\b)(\p{L})/gu;
     

    ✨ Improve tool usage guide:

    Overview:
    The improve tool scans the PR code changes, and automatically generates suggestions for improving the PR code. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on a PR.

    • When commenting, to edit configurations related to the improve tool (pr_code_suggestions section), use the following template:
    /improve --pr_code_suggestions.some_config1=... --pr_code_suggestions.some_config2=...
    
    [pr_code_suggestions]
    some_config1=...
    some_config2=...
    

    See the improve usage page for a comprehensive guide on using this tool.

    Copy link

    codiumai-pr-agent-pro bot commented Apr 9, 2024

    CI Failure Feedback

    (Checks updated until commit ae0b070)

    Action: JavaScript / Browser Tests (chrome) / Browser Tests (chrome)

    Failed stage: Run Bazel [❌]

    Failed test name: chrome-browser-tests

    Failure summary:

    The action failed due to two test failures in the chrome-browser-tests suite. The first failure
    occurred in the "Browsing Context Inspector" test, where a TypeError was encountered because a
    property 'id' could not be read from a null object. This suggests that an expected object was not
    initialized or returned as expected. The second failure was in the "BiDi Input" test during a
    dragAndDrop() operation, where an AssertionError was raised due to a mismatch in expected pixel
    values, indicating a possible issue with the drag and drop functionality or the assertion logic.

    Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    965:  Package 'php-symfony-debug-bundle' is not installed, so not removed
    966:  Package 'php-symfony-dependency-injection' is not installed, so not removed
    967:  Package 'php-symfony-deprecation-contracts' is not installed, so not removed
    968:  Package 'php-symfony-discord-notifier' is not installed, so not removed
    969:  Package 'php-symfony-doctrine-bridge' is not installed, so not removed
    970:  Package 'php-symfony-doctrine-messenger' is not installed, so not removed
    971:  Package 'php-symfony-dom-crawler' is not installed, so not removed
    972:  Package 'php-symfony-dotenv' is not installed, so not removed
    973:  Package 'php-symfony-error-handler' is not installed, so not removed
    ...
    
    1959:  Setting up fonts-terminus-otb (4.48-3.1) ...
    1960:  Processing triggers for install-info (6.8-4build1) ...
    1961:  Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
    1962:  Processing triggers for fontconfig (2.13.1-4.2ubuntu5) ...
    1963:  Processing triggers for hicolor-icon-theme (0.17-2) ...
    1964:  Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
    1965:  Processing triggers for man-db (2.10.2-1) ...
    1966:  Processing triggers for menu (2.1.47ubuntu4) ...
    1967:  /usr/share/menu/dash: 1: Syntax error: word unexpected (expecting ")")
    1968:  /usr/share/menu/bc: 1: Syntax error: word unexpected (expecting ")")
    1969:  /usr/share/menu/tk8.6: 1: Syntax error: word unexpected (expecting ")")
    1970:  /usr/share/menu/google-chrome.menu: 1: Syntax error: word unexpected (expecting ")")
    1971:  /usr/share/menu/microsoft-edge.menu: 1: Syntax error: word unexpected (expecting ")")
    1972:  /usr/share/menu/telnet: 1: Syntax error: word unexpected (expecting ")")
    1973:  /usr/share/menu/monodoc-http: 1: Syntax error: word unexpected (expecting ")")
    1974:  /usr/share/menu/bash: 1: Syntax error: word unexpected (expecting ")")
    1975:  /usr/share/menu/tcl8.6: 1: Syntax error: word unexpected (expecting ")")
    1976:  /usr/share/menu/psmisc: 1: Syntax error: word unexpected (expecting ")")
    1977:  /usr/share/menu/procps: 1: Syntax error: word unexpected (expecting ")")
    1978:  NEEDRESTART-VER: 3.5
    1979:  NEEDRESTART-KCUR: 6.5.0-1017-azure
    1980:  NEEDRESTART-KEXP: 6.5.0-1017-azure
    1981:  NEEDRESTART-KSTA: 1
    1982:  Warning: Failed to open file(/usr/share/fluxbox/nls/C.UTF-8/fluxbox.cat)
    1983:  for translation, using default messages.
    1984:  Failed to read: session.ignoreBorder
    1985:  Setting default value
    1986:  Failed to read: session.forcePseudoTransparency
    1987:  Setting default value
    1988:  Failed to read: session.colorsPerChannel
    1989:  Setting default value
    1990:  Failed to read: session.doubleClickInterval
    1991:  Setting default value
    1992:  Failed to read: session.tabPadding
    1993:  Setting default value
    1994:  Failed to read: session.styleOverlay
    1995:  Setting default value
    1996:  Failed to read: session.slitlistFile
    1997:  Setting default value
    1998:  Failed to read: session.appsFile
    1999:  Setting default value
    2000:  Failed to read: session.tabsAttachArea
    2001:  Setting default value
    2002:  Failed to read: session.cacheLife
    2003:  Setting default value
    2004:  Failed to read: session.cacheMax
    2005:  Setting default value
    2006:  Failed to read: session.autoRaiseDelay
    2007:  Setting default value
    2008:  Failed to read: session.ignoreBorder
    2009:  Setting default value
    2010:  Failed to read: session.forcePseudoTransparency
    2011:  Setting default value
    2012:  Failed to read: session.colorsPerChannel
    2013:  Setting default value
    2014:  Failed to read: session.doubleClickInterval
    2015:  Setting default value
    2016:  Failed to read: session.tabPadding
    2017:  Setting default value
    2018:  Failed to read: session.styleOverlay
    2019:  Setting default value
    2020:  Failed to read: session.slitlistFile
    2021:  Setting default value
    2022:  Failed to read: session.appsFile
    2023:  Setting default value
    2024:  Failed to read: session.tabsAttachArea
    2025:  Setting default value
    2026:  Failed to read: session.cacheLife
    2027:  Setting default value
    2028:  Failed to read: session.cacheMax
    2029:  Setting default value
    2030:  Failed to read: session.autoRaiseDelay
    2031:  Setting default value
    2032:  Failed to read: session.screen0.opaqueMove
    2033:  Setting default value
    2034:  Failed to read: session.screen0.fullMaximization
    2035:  Setting default value
    2036:  Failed to read: session.screen0.maxIgnoreIncrement
    2037:  Setting default value
    2038:  Failed to read: session.screen0.maxDisableMove
    2039:  Setting default value
    2040:  Failed to read: session.screen0.maxDisableResize
    2041:  Setting default value
    2042:  Failed to read: session.screen0.workspacewarping
    2043:  Setting default value
    2044:  Failed to read: session.screen0.showwindowposition
    2045:  Setting default value
    2046:  Failed to read: session.screen0.autoRaise
    2047:  Setting default value
    2048:  Failed to read: session.screen0.clickRaises
    2049:  Setting default value
    2050:  Failed to read: session.screen0.defaultDeco
    2051:  Setting default value
    2052:  Failed to read: session.screen0.tab.placement
    2053:  Setting default value
    2054:  Failed to read: session.screen0.windowMenu
    2055:  Setting default value
    2056:  Failed to read: session.screen0.noFocusWhileTypingDelay
    2057:  Setting default value
    2058:  Failed to read: session.screen0.workspaces
    2059:  Setting default value
    2060:  Failed to read: session.screen0.edgeSnapThreshold
    2061:  Setting default value
    2062:  Failed to read: session.screen0.window.focus.alpha
    2063:  Setting default value
    2064:  Failed to read: session.screen0.window.unfocus.alpha
    2065:  Setting default value
    2066:  Failed to read: session.screen0.menu.alpha
    2067:  Setting default value
    2068:  Failed to read: session.screen0.menuDelay
    2069:  Setting default value
    2070:  Failed to read: session.screen0.tab.width
    2071:  Setting default value
    2072:  Failed to read: session.screen0.tooltipDelay
    2073:  Setting default value
    2074:  Failed to read: session.screen0.allowRemoteActions
    2075:  Setting default value
    2076:  Failed to read: session.screen0.clientMenu.usePixmap
    2077:  Setting default value
    2078:  Failed to read: session.screen0.tabs.usePixmap
    2079:  Setting default value
    2080:  Failed to read: session.screen0.tabs.maxOver
    2081:  Setting default value
    2082:  Failed to read: session.screen0.tabs.intitlebar
    2083:  Setting default value
    2084:  Failed to read: session.screen0.focusModel
    2085:  Setting default value
    2086:  Failed to read: session.screen0.tabFocusModel
    2087:  Setting default value
    2088:  Failed to read: session.screen0.focusNewWindows
    2089:  Setting default value
    2090:  Failed to read: session.screen0.focusSameHead
    2091:  Setting default value
    2092:  Failed to read: session.screen0.rowPlacementDirection
    2093:  Setting default value
    2094:  Failed to read: session.screen0.colPlacementDirection
    2095:  Setting default value
    2096:  Failed to read: session.screen0.windowPlacement
    2097:  Setting default value
    2098:  Failed to read: session.ignoreBorder
    2099:  Setting default value
    2100:  Failed to read: session.forcePseudoTransparency
    2101:  Setting default value
    2102:  Failed to read: session.colorsPerChannel
    2103:  Setting default value
    2104:  Failed to read: session.doubleClickInterval
    2105:  Setting default value
    2106:  Failed to read: session.tabPadding
    2107:  Setting default value
    2108:  Failed to read: session.styleOverlay
    2109:  Setting default value
    2110:  Failed to read: session.slitlistFile
    2111:  Setting default value
    2112:  Failed to read: session.appsFile
    2113:  Setting default value
    2114:  Failed to read: session.tabsAttachArea
    2115:  Setting default value
    2116:  Failed to read: session.cacheLife
    2117:  Setting default value
    2118:  Failed to read: session.cacheMax
    2119:  Setting default value
    2120:  Failed to read: session.autoRaiseDelay
    2121:  Setting default value
    2122:  Failed to read: session.screen0.opaqueMove
    2123:  Setting default value
    2124:  Failed to read: session.screen0.fullMaximization
    2125:  Setting default value
    2126:  Failed to read: session.screen0.maxIgnoreIncrement
    2127:  Setting default value
    2128:  Failed to read: session.screen0.maxDisableMove
    2129:  Setting default value
    2130:  Failed to read: session.screen0.maxDisableResize
    2131:  Setting default value
    2132:  Failed to read: session.screen0.workspacewarping
    2133:  Setting default value
    2134:  Failed to read: session.screen0.showwindowposition
    2135:  Setting default value
    2136:  Failed to read: session.screen0.autoRaise
    2137:  Setting default value
    2138:  Failed to read: session.screen0.clickRaises
    2139:  Setting default value
    2140:  Failed to read: session.screen0.defaultDeco
    2141:  Setting default value
    2142:  Failed to read: session.screen0.tab.placement
    2143:  Setting default value
    2144:  Failed to read: session.screen0.windowMenu
    2145:  Setting default value
    2146:  Failed to read: session.screen0.noFocusWhileTypingDelay
    2147:  Setting default value
    2148:  Failed to read: session.screen0.workspaces
    2149:  Setting default value
    2150:  Failed to read: session.screen0.edgeSnapThreshold
    2151:  Setting default value
    2152:  Failed to read: session.screen0.window.focus.alpha
    2153:  Setting default value
    2154:  Failed to read: session.screen0.window.unfocus.alpha
    2155:  Setting default value
    2156:  Failed to read: session.screen0.menu.alpha
    2157:  Setting default value
    2158:  Failed to read: session.screen0.menuDelay
    2159:  Setting default value
    2160:  Failed to read: session.screen0.tab.width
    2161:  Setting default value
    2162:  Failed to read: session.screen0.tooltipDelay
    2163:  Setting default value
    2164:  Failed to read: session.screen0.allowRemoteActions
    2165:  Setting default value
    2166:  Failed to read: session.screen0.clientMenu.usePixmap
    2167:  Setting default value
    2168:  Failed to read: session.screen0.tabs.usePixmap
    2169:  Setting default value
    2170:  Failed to read: session.screen0.tabs.maxOver
    2171:  Setting default value
    2172:  Failed to read: session.screen0.tabs.intitlebar
    2173:  Setting default value
    2174:  Failed to read: session.screen0.focusModel
    2175:  Setting default value
    2176:  Failed to read: session.screen0.tabFocusModel
    2177:  Setting default value
    2178:  Failed to read: session.screen0.focusNewWindows
    2179:  Setting default value
    2180:  Failed to read: session.screen0.focusSameHead
    2181:  Setting default value
    2182:  Failed to read: session.screen0.rowPlacementDirection
    2183:  Setting default value
    2184:  Failed to read: session.screen0.colPlacementDirection
    2185:  Setting default value
    2186:  Failed to read: session.screen0.windowPlacement
    2187:  Setting default value
    2188:  Failed to read: session.screen0.slit.acceptKdeDockapps
    2189:  Setting default value
    2190:  Failed to read: session.screen0.slit.autoHide
    2191:  Setting default value
    2192:  Failed to read: session.screen0.slit.maxOver
    2193:  Setting default value
    2194:  Failed to read: session.screen0.slit.placement
    2195:  Setting default value
    2196:  Failed to read: session.screen0.slit.alpha
    2197:  Setting default value
    2198:  Failed to read: session.screen0.slit.onhead
    2199:  Setting default value
    2200:  Failed to read: session.screen0.slit.layer
    2201:  Setting default value
    2202:  Failed to read: session.screen0.toolbar.autoHide
    2203:  Setting default value
    2204:  Failed to read: session.screen0.toolbar.maxOver
    2205:  Setting default value
    2206:  Failed to read: session.screen0.toolbar.visible
    2207:  Setting default value
    2208:  Failed to read: session.screen0.toolbar.alpha
    2209:  Setting default value
    2210:  Failed to read: session.screen0.toolbar.layer
    2211:  Setting default value
    2212:  Failed to read: session.screen0.toolbar.onhead
    2213:  Setting default value
    2214:  Failed to read: session.screen0.toolbar.placement
    2215:  Setting default value
    2216:  Failed to read: session.screen0.toolbar.height
    2217:  Setting default value
    2218:  Failed to read: session.screen0.iconbar.mode
    2219:  Setting default value
    2220:  Failed to read: session.screen0.iconbar.alignment
    2221:  Setting default value
    2222:  Failed to read: session.screen0.iconbar.iconWidth
    2223:  Setting default value
    2224:  Failed to read: session.screen0.iconbar.iconTextPadding
    2225:  Setting default value
    2226:  Failed to read: session.screen0.iconbar.usePixmap
    ...
    
    2408:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/qs@6.11.0/pkg is a directory; dependency checking of directories is unsound
    2409:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/proxy-addr@2.0.7/pkg is a directory; dependency checking of directories is unsound
    2410:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/path-to-regexp@0.1.7/pkg is a directory; dependency checking of directories is unsound
    2411:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/parseurl@1.3.3/pkg is a directory; dependency checking of directories is unsound
    2412:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/on-finished@2.4.1/pkg is a directory; dependency checking of directories is unsound
    2413:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/object-inspect@1.12.2/pkg is a directory; dependency checking of directories is unsound
    2414:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/negotiator@0.6.3/pkg is a directory; dependency checking of directories is unsound
    2415:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/ms@2.1.3/pkg is a directory; dependency checking of directories is unsound
    2416:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/http-errors@2.0.0/pkg is a directory; dependency checking of directories is unsound
    ...
    
    2440:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/pako@1.0.11/pkg is a directory; dependency checking of directories is unsound
    2441:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/lie@3.3.0/pkg is a directory; dependency checking of directories is unsound
    2442:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/to-regex-range@5.0.1/pkg is a directory; dependency checking of directories is unsound
    2443:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/supports-color@7.2.0/pkg is a directory; dependency checking of directories is unsound
    2444:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/append-field@1.0.0/pkg is a directory; dependency checking of directories is unsound
    2445:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/statuses@1.5.0/pkg is a directory; dependency checking of directories is unsound
    2446:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/serialize-javascript@6.0.0/pkg is a directory; dependency checking of directories is unsound
    2447:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/require-directory@2.1.1/pkg is a directory; dependency checking of directories is unsound
    2448:  �[35mWARNING: �[0m/home/runner/work/selenium/selenium/BUILD.bazel:13:22: input 'package' to //:.aspect_rules_js/node_modules/http-errors@1.6.3/pkg is a directory; dependency checking of directories is unsound
    ...
    
    2486:  �[32m[2,495 / 2,496]�[0m Testing //javascript/node/selenium-webdriver:chrome-browser-tests; 277s local, disk-cache
    2487:  �[31m�[1mFAIL: �[0m//javascript/node/selenium-webdriver:chrome-browser-tests (see /home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/chrome-browser-tests/test_attempts/attempt_2.log)
    2488:  �[32m[2,495 / 2,496]�[0m Testing //javascript/node/selenium-webdriver:chrome-browser-tests; 279s local, disk-cache
    2489:  �[32m[2,495 / 2,496]�[0m Testing //javascript/node/selenium-webdriver:chrome-browser-tests; 280s local, disk-cache
    2490:  �[32m[2,495 / 2,496]�[0m Testing //javascript/node/selenium-webdriver:chrome-browser-tests; 340s local, disk-cache
    2491:  �[32m[2,495 / 2,496]�[0m Testing //javascript/node/selenium-webdriver:chrome-browser-tests; 400s local, disk-cache
    2492:  �[32m[2,495 / 2,496]�[0m Testing //javascript/node/selenium-webdriver:chrome-browser-tests; 420s local, disk-cache
    2493:  �[31m�[1mFAIL: �[0m//javascript/node/selenium-webdriver:chrome-browser-tests (see /home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/chrome-browser-tests/test.log)
    2494:  �[31m�[1mFAILED: �[0m//javascript/node/selenium-webdriver:chrome-browser-tests (Summary)
    ...
    
    2607:  Network network
    2608:  ✔ can listen to event before request is sent
    2609:  ✔ can request cookies (65ms)
    2610:  - can redirect http equiv
    2611:  ✔ can subscribe to response started (41ms)
    2612:  ✔ test response started mime type (56ms)
    2613:  ✔ can subscribe to response completed
    2614:  - can listen to auth required event
    2615:  ✔ can listen to fetch error event (291ms)
    ...
    
    2630:  ✔ can call function in a realm (41ms)
    2631:  ✔ can evaluate script
    2632:  ✔ can evaluate script that throws exception
    2633:  ✔ can evaluate script with result ownership
    2634:  ✔ can evaluate in a sandbox
    2635:  ✔ can evaluate in a realm (38ms)
    2636:  ✔ can disown handles
    2637:  ✔ can disown handles in realm
    2638:  Unhandled promise rejection: Error: Request with id 1 timed out
    2639:  at Timeout._onTimeout (/home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/bidi/index.js:100:16)
    2640:  at listOnTimeout (node:internal/timers:569:17)
    2641:  at process.processTimers (node:internal/timers:512:7)
    2642:  Unhandled promise rejection: Error: Request with id 1 timed out
    ...
    
    2742:  ✔ can delete all cookies
    2743:  ✔ can delete cookies by name
    2744:  ✔ should only delete cookie with exact name
    2745:  ✔ can delete cookies set higher in the path (77ms)
    2746:  ✔ should retain cookie expiry (5009ms)
    2747:  ✔ can add same site cookie property to `Strict`
    2748:  ✔ can add same site cookie property to `Lax`
    2749:  ✔ can add same site cookie property to `None` when cookie is Secure
    2750:  ✔ throws an error if same site is set to `None` and the cookie is not Secure
    2751:  ✔ throws an error if same site cookie property is invalid
    ...
    
    2787:  ✔ Should return explicitly defined role
    2788:  ✔ Should return implicit role defined by tagName
    2789:  ✔ Should return explicit role even if it contradicts TagName
    2790:  [chrome]
    2791:  finding elements
    2792:  ✔ should work after loading multiple pages in a row (122ms)
    2793:  By.id()
    2794:  ✔ should work (71ms)
    2795:  ✔ should fail if ID not present on page
    ...
    
    2810:  ✔ should be able to find elements that do not support name property
    2811:  ✔ should be able to find hidden elements by name (38ms)
    2812:  By.className()
    2813:  ✔ should work (40ms)
    2814:  ✔ should work when name is first name among many
    2815:  ✔ should work when name is last name among many
    2816:  ✔ should work when name is middle of many
    2817:  ✔ should work when name surrounded by whitespace
    2818:  ✔ should fail if queried name only partially matches
    ...
    
    2831:  ✔ should find first matching element when searching by compound CSS selector
    2832:  ✔ should be able to find multiple elements by compound selector
    2833:  ✔ should be able to find element by boolean attribute
    2834:  ✔ should be able to find element with short boolean attribute selector
    2835:  ✔ should be able to find element with short boolean attribute selector on HTML4 page
    2836:  by custom locator
    2837:  ✔ handles single element result (69ms)
    2838:  ✔ uses first element if locator resolves to list
    2839:  ✔ fails if locator returns non-webelement value
    ...
    
    2843:  RelativeBy with findElement
    2844:  ✔ finds an element above
    2845:  ✔ should combine filters
    2846:  ✔ should search by passing in a by object
    2847:  switchTo().activeElement()
    2848:  ✔ returns document.activeElement (50ms)
    2849:  [chrome]
    2850:  executeScript;
    2851:  ✔ fails if script throws
    2852:  ✔ fails if script does not parse
    ...
    
    2885:  using for..in loops;
    2886:  ✔ can return array built from for-loop index
    2887:  ✔ can copy input array contents
    2888:  ✔ can iterate over input object keys
    2889:  recursive functions;
    2890:  ✔ can build array from input
    2891:  ✔ can build array from elements in object
    2892:  async timeouts
    2893:  ✔ does not fail if script execute in time (108ms)
    2894:  ✔ fails if script took too long (208ms)
    ...
    
    2897:  ✔ can switch to a frame by id (60ms)
    2898:  ✔ can switch to a frame by name (67ms)
    2899:  HttpClient
    2900:  ✔ can send a basic HTTP request
    2901:  ✔ can send a basic HTTP request with custom user-agent via client_options
    2902:  ✔ can send a basic HTTP request with keep-alive being set to true via client_options
    2903:  ✔ handles chunked responses
    2904:  ✔ can use basic auth
    2905:  ✔ fails requests missing required basic auth
    ...
    
    2907:  ✔ handles malformed redirect responses
    2908:  with proxy
    2909:  ✔ sends request to proxy with absolute URI
    2910:  ✔ uses proxy when following redirects
    2911:  ✔ includes search and hash in redirect URI
    2912:  selenium-webdriver/http/util
    2913:  #getStatus
    2914:  ✔ should return value field on success
    2915:  ✔ should fail if response object is not success
    2916:  ✔ should fail if the server is not listening (47ms)
    2917:  ✔ should fail if HTTP status is not 200
    2918:  #waitForServer
    2919:  ✔ resolves when server is ready (52ms)
    2920:  ✔ should fail if server does not become ready (51ms)
    2921:  ✔ can cancel wait (50ms)
    2922:  #waitForUrl
    2923:  ✔ succeeds when URL returns 2xx (51ms)
    2924:  ✔ fails if URL always returns 4xx (51ms)
    2925:  ✔ fails if cannot connect to server (144ms)
    ...
    
    2934:  ✔ can be initialized from a hash object
    2935:  ✔ can be initialized from a map
    2936:  serialize
    2937:  ✔ works for simple capabilities
    2938:  ✔ does not omit capabilities set to a false-like value
    2939:  ✔ omits capabilities with a null value
    2940:  ✔ omits capabilities with an undefined value
    2941:  [chrome]
    2942:  ✔ should fail to upload files to a non interactable input when StrictFileInteractability is on (606ms)
    ...
    
    2974:  - can bypass proxy for specific hosts
    2975:  pac proxy settings
    2976:  - can configure proxy through PAC file
    2977:  [chrome]
    2978:  WebElement
    2979:  ✔ getRect() (42ms)
    2980:  DriverService
    2981:  start()
    2982:  ✔ fails if child-process dies (41ms)
    ...
    
    2994:  ✔ Should select by multiple text (229ms)
    2995:  ✔ Should raise exception select by value single disabled (57ms)
    2996:  ✔ Should raise exception select by index single disabled (59ms)
    2997:  ✔ Should raise exception select by text single disabled (52ms)
    2998:  ✔ Should raise exception select by index multiple disabled (59ms)
    2999:  ✔ Should raise exception select by value multiple disabled (50ms)
    3000:  ✔ Should raise exception select by text multiple disabled (47ms)
    3001:  [chrome]
    3002:  ✔ dynamically removing elements from the DOM trigger a StaleElementReferenceError (103ms)
    ...
    
    3029:  ✔ can set size of the current window from frame (224ms)
    3030:  ✔ can set size of the current window from iframe (166ms)
    3031:  ✔ can switch to a new window (86ms)
    3032:  - can set the window position of the current window
    3033:  - can set the window position from a frame
    3034:  ✔ can open a new window
    3035:  371 passing (2m)
    3036:  32 pending
    3037:  1 failing
    3038:  1) [chrome]
    3039:  Browsing Context Inspector
    3040:  can listen to browsing context destroyed event:
    3041:  TypeError: Cannot read properties of null (reading 'id')
    ...
    
    3153:  Network network
    3154:  ✔ can listen to event before request is sent
    3155:  ✔ can request cookies (66ms)
    3156:  - can redirect http equiv
    3157:  ✔ can subscribe to response started
    3158:  ✔ test response started mime type (60ms)
    3159:  ✔ can subscribe to response completed
    3160:  - can listen to auth required event
    3161:  ✔ can listen to fetch error event (193ms)
    ...
    
    3176:  ✔ can call function in a realm (42ms)
    3177:  ✔ can evaluate script
    3178:  ✔ can evaluate script that throws exception
    3179:  ✔ can evaluate script with result ownership
    3180:  ✔ can evaluate in a sandbox
    3181:  ✔ can evaluate in a realm (39ms)
    3182:  ✔ can disown handles
    3183:  ✔ can disown handles in realm
    3184:  Unhandled promise rejection: Error: Request with id 1 timed out
    3185:  at Timeout._onTimeout (/home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/bidi/index.js:100:16)
    3186:  at listOnTimeout (node:internal/timers:569:17)
    3187:  at process.processTimers (node:internal/timers:512:7)
    3188:  Unhandled promise rejection: Error: Request with id 1 timed out
    ...
    
    3288:  ✔ can delete all cookies
    3289:  ✔ can delete cookies by name
    3290:  ✔ should only delete cookie with exact name
    3291:  ✔ can delete cookies set higher in the path (71ms)
    3292:  ✔ should retain cookie expiry (5009ms)
    3293:  ✔ can add same site cookie property to `Strict`
    3294:  ✔ can add same site cookie property to `Lax`
    3295:  ✔ can add same site cookie property to `None` when cookie is Secure
    3296:  ✔ throws an error if same site is set to `None` and the cookie is not Secure
    3297:  ✔ throws an error if same site cookie property is invalid
    ...
    
    3333:  ✔ Should return explicitly defined role
    3334:  ✔ Should return implicit role defined by tagName (38ms)
    3335:  ✔ Should return explicit role even if it contradicts TagName
    3336:  [chrome]
    3337:  finding elements
    3338:  ✔ should work after loading multiple pages in a row (128ms)
    3339:  By.id()
    3340:  ✔ should work (70ms)
    3341:  ✔ should fail if ID not present on page
    ...
    
    3356:  ✔ should be able to find elements that do not support name property
    3357:  ✔ should be able to find hidden elements by name (38ms)
    3358:  By.className()
    3359:  ✔ should work
    3360:  ✔ should work when name is first name among many
    3361:  ✔ should work when name is last name among many
    3362:  ✔ should work when name is middle of many
    3363:  ✔ should work when name surrounded by whitespace
    3364:  ✔ should fail if queried name only partially matches
    ...
    
    3377:  ✔ should find first matching element when searching by compound CSS selector
    3378:  ✔ should be able to find multiple elements by compound selector
    3379:  ✔ should be able to find element by boolean attribute
    3380:  ✔ should be able to find element with short boolean attribute selector
    3381:  ✔ should be able to find element with short boolean attribute selector on HTML4 page
    3382:  by custom locator
    3383:  ✔ handles single element result (76ms)
    3384:  ✔ uses first element if locator resolves to list
    3385:  ✔ fails if locator returns non-webelement value
    ...
    
    3389:  RelativeBy with findElement
    3390:  ✔ finds an element above
    3391:  ✔ should combine filters
    3392:  ✔ should search by passing in a by object
    3393:  switchTo().activeElement()
    3394:  ✔ returns document.activeElement (52ms)
    3395:  [chrome]
    3396:  executeScript;
    3397:  ✔ fails if script throws
    3398:  ✔ fails if script does not parse
    ...
    
    3431:  using for..in loops;
    3432:  ✔ can return array built from for-loop index
    3433:  ✔ can copy input array contents
    3434:  ✔ can iterate over input object keys
    3435:  recursive functions;
    3436:  ✔ can build array from input
    3437:  ✔ can build array from elements in object
    3438:  async timeouts
    3439:  ✔ does not fail if script execute in time (109ms)
    3440:  ✔ fails if script took too long (208ms)
    ...
    
    3443:  ✔ can switch to a frame by id (61ms)
    3444:  ✔ can switch to a frame by name (67ms)
    3445:  HttpClient
    3446:  ✔ can send a basic HTTP request
    3447:  ✔ can send a basic HTTP request with custom user-agent via client_options
    3448:  ✔ can send a basic HTTP request with keep-alive being set to true via client_options
    3449:  ✔ handles chunked responses
    3450:  ✔ can use basic auth
    3451:  ✔ fails requests missing required basic auth
    ...
    
    3453:  ✔ handles malformed redirect responses
    3454:  with proxy
    3455:  ✔ sends request to proxy with absolute URI
    3456:  ✔ uses proxy when following redirects
    3457:  ✔ includes search and hash in redirect URI
    3458:  selenium-webdriver/http/util
    3459:  #getStatus
    3460:  ✔ should return value field on success
    3461:  ✔ should fail if response object is not success
    3462:  �[32mINFO: �[0mFound 1 test target...
    3463:  ✔ should fail if the server is not listening (45ms)
    3464:  ✔ should fail if HTTP status is not 200
    3465:  #waitForServer
    3466:  ✔ resolves when server is ready (52ms)
    3467:  ✔ should fail if server does not become ready (51ms)
    3468:  ✔ can cancel wait (51ms)
    3469:  #waitForUrl
    3470:  ✔ succeeds when URL returns 2xx (52ms)
    3471:  ✔ fails if URL always returns 4xx (52ms)
    3472:  ✔ fails if cannot connect to server (144ms)
    ...
    
    3481:  ✔ can be initialized from a hash object
    3482:  ✔ can be initialized from a map
    3483:  serialize
    3484:  ✔ works for simple capabilities
    3485:  ✔ does not omit capabilities set to a false-like value
    3486:  ✔ omits capabilities with a null value
    3487:  ✔ omits capabilities with an undefined value
    3488:  [chrome]
    3489:  ✔ should fail to upload files to a non interactable input when StrictFileInteractability is on (612ms)
    ...
    
    3521:  - can bypass proxy for specific hosts
    3522:  pac proxy settings
    3523:  - can configure proxy through PAC file
    3524:  [chrome]
    3525:  WebElement
    3526:  ✔ getRect() (45ms)
    3527:  DriverService
    3528:  start()
    3529:  ✔ fails if child-process dies (41ms)
    ...
    
    3541:  ✔ Should select by multiple text (231ms)
    3542:  ✔ Should raise exception select by value single disabled (59ms)
    3543:  ✔ Should raise exception select by index single disabled (59ms)
    3544:  ✔ Should raise exception select by text single disabled (53ms)
    3545:  ✔ Should raise exception select by index multiple disabled (64ms)
    3546:  ✔ Should raise exception select by value multiple disabled (52ms)
    3547:  ✔ Should raise exception select by text multiple disabled (50ms)
    3548:  [chrome]
    3549:  ✔ dynamically removing elements from the DOM trigger a StaleElementReferenceError (98ms)
    ...
    
    3576:  ✔ can set size of the current window from frame (230ms)
    3577:  ✔ can set size of the current window from iframe (167ms)
    3578:  ✔ can switch to a new window (91ms)
    3579:  - can set the window position of the current window
    3580:  - can set the window position from a frame
    3581:  ✔ can open a new window
    3582:  371 passing (2m)
    3583:  32 pending
    3584:  1 failing
    3585:  1) [chrome]
    3586:  Browsing Context Inspector
    3587:  can listen to browsing context destroyed event:
    3588:  TypeError: Cannot read properties of null (reading 'id')
    ...
    
    3700:  Network network
    3701:  ✔ can listen to event before request is sent
    3702:  ✔ can request cookies (65ms)
    3703:  - can redirect http equiv
    3704:  ✔ can subscribe to response started
    3705:  ✔ test response started mime type (56ms)
    3706:  ✔ can subscribe to response completed
    3707:  - can listen to auth required event
    3708:  ✔ can listen to fetch error event (173ms)
    ...
    
    3723:  ✔ can call function in a realm (40ms)
    3724:  ✔ can evaluate script
    3725:  ✔ can evaluate script that throws exception
    3726:  ✔ can evaluate script with result ownership
    3727:  ✔ can evaluate in a sandbox
    3728:  ✔ can evaluate in a realm (41ms)
    3729:  ✔ can disown handles
    3730:  ✔ can disown handles in realm
    3731:  Unhandled promise rejection: Error: Request with id 1 timed out
    3732:  at Timeout._onTimeout (/home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/bidi/index.js:100:16)
    3733:  at listOnTimeout (node:internal/timers:569:17)
    3734:  at process.processTimers (node:internal/timers:512:7)
    3735:  Unhandled promise rejection: Error: Request with id 1 timed out
    ...
    
    3835:  ✔ can delete all cookies
    3836:  ✔ can delete cookies by name
    3837:  ✔ should only delete cookie with exact name
    3838:  ✔ can delete cookies set higher in the path (75ms)
    3839:  ✔ should retain cookie expiry (5010ms)
    3840:  ✔ can add same site cookie property to `Strict`
    3841:  ✔ can add same site cookie property to `Lax`
    3842:  ✔ can add same site cookie property to `None` when cookie is Secure
    3843:  ✔ throws an error if same site is set to `None` and the cookie is not Secure
    3844:  ✔ throws an error if same site cookie property is invalid
    ...
    
    3880:  ✔ Should return explicitly defined role
    3881:  ✔ Should return implicit role defined by tagName (40ms)
    3882:  ✔ Should return explicit role even if it contradicts TagName
    3883:  [chrome]
    3884:  finding elements
    3885:  ✔ should work after loading multiple pages in a row (133ms)
    3886:  By.id()
    3887:  ✔ should work (74ms)
    3888:  ✔ should fail if ID not present on page (40ms)
    ...
    
    3903:  ✔ should be able to find elements that do not support name property
    3904:  ✔ should be able to find hidden elements by name
    3905:  By.className()
    3906:  ✔ should work
    3907:  ✔ should work when name is first name among many
    3908:  ✔ should work when name is last name among many
    3909:  ✔ should work when name is middle of many
    3910:  ✔ should work when name surrounded by whitespace
    3911:  ✔ should fail if queried name only partially matches
    ...
    
    3924:  ✔ should find first matching element when searching by compound CSS selector
    3925:  ✔ should be able to find multiple elements by compound selector
    3926:  ✔ should be able to find element by boolean attribute
    3927:  ✔ should be able to find element with short boolean attribute selector
    3928:  ✔ should be able to find element with short boolean attribute selector on HTML4 page
    3929:  by custom locator
    3930:  ✔ handles single element result (77ms)
    3931:  ✔ uses first element if locator resolves to list (38ms)
    3932:  ✔ fails if locator returns non-webelement value
    ...
    
    3936:  RelativeBy with findElement
    3937:  ✔ finds an element above
    3938:  ✔ should combine filters
    3939:  ✔ should search by passing in a by object
    3940:  switchTo().activeElement()
    3941:  ✔ returns document.activeElement (50ms)
    3942:  [chrome]
    3943:  executeScript;
    3944:  ✔ fails if script throws
    3945:  ✔ fails if script does not parse
    ...
    
    3978:  using for..in loops;
    3979:  ✔ can return array built from for-loop index
    3980:  ✔ can copy input array contents
    3981:  ✔ can iterate over input object keys
    3982:  recursive functions;
    3983:  ✔ can build array from input
    3984:  ✔ can build array from elements in object
    3985:  async timeouts
    3986:  ✔ does not fail if script execute in time (110ms)
    3987:  ✔ fails if script took too long (208ms)
    ...
    
    3990:  ✔ can switch to a frame by id (62ms)
    3991:  ✔ can switch to a frame by name (70ms)
    3992:  HttpClient
    3993:  ✔ can send a basic HTTP request
    3994:  ✔ can send a basic HTTP request with custom user-agent via client_options
    3995:  ✔ can send a basic HTTP request with keep-alive being set to true via client_options
    3996:  ✔ handles chunked responses
    3997:  ✔ can use basic auth
    3998:  ✔ fails requests missing required basic auth
    ...
    
    4000:  ✔ handles malformed redirect responses
    4001:  with proxy
    4002:  ✔ sends request to proxy with absolute URI
    4003:  ✔ uses proxy when following redirects
    4004:  ✔ includes search and hash in redirect URI
    4005:  selenium-webdriver/http/util
    4006:  #getStatus
    4007:  ✔ should return value field on success
    4008:  ✔ should fail if response object is not success
    4009:  ✔ should fail if the server is not listening (47ms)
    4010:  ✔ should fail if HTTP status is not 200
    4011:  #waitForServer
    4012:  ✔ resolves when server is ready (52ms)
    4013:  ✔ should fail if server does not become ready (52ms)
    4014:  ✔ can cancel wait (50ms)
    4015:  #waitForUrl
    4016:  ✔ succeeds when URL returns 2xx (52ms)
    4017:  ✔ fails if URL always returns 4xx (52ms)
    4018:  ✔ fails if cannot connect to server (143ms)
    ...
    
    4027:  ✔ can be initialized from a hash object
    4028:  ✔ can be initialized from a map
    4029:  serialize
    4030:  ✔ works for simple capabilities
    4031:  ✔ does not omit capabilities set to a false-like value
    4032:  ✔ omits capabilities with a null value
    4033:  ✔ omits capabilities with an undefined value
    4034:  [chrome]
    4035:  ✔ should fail to upload files to a non interactable input when StrictFileInteractability is on (615ms)
    ...
    
    4067:  - can bypass proxy for specific hosts
    4068:  pac proxy settings
    4069:  - can configure proxy through PAC file
    4070:  [chrome]
    4071:  WebElement
    4072:  ✔ getRect() (43ms)
    4073:  DriverService
    4074:  start()
    4075:  ✔ fails if child-process dies (42ms)
    ...
    
    4087:  ✔ Should select by multiple text (233ms)
    4088:  ✔ Should raise exception select by value single disabled (58ms)
    4089:  ✔ Should raise exception select by index single disabled (65ms)
    4090:  ✔ Should raise exception select by text single disabled (53ms)
    4091:  ✔ Should raise exception select by index multiple disabled (60ms)
    4092:  ✔ Should raise exception select by value multiple disabled (55ms)
    4093:  ✔ Should raise exception select by text multiple disabled (50ms)
    4094:  [chrome]
    4095:  ✔ dynamically removing elements from the DOM trigger a StaleElementReferenceError (103ms)
    ...
    
    4122:  ✔ can set size of the current window from frame (230ms)
    4123:  ✔ can set size of the current window from iframe (167ms)
    4124:  ✔ can switch to a new window (95ms)
    4125:  - can set the window position of the current window
    4126:  - can set the window position from a frame
    4127:  ✔ can open a new window
    4128:  370 passing (2m)
    4129:  32 pending
    4130:  2 failing
    4131:  1) [chrome]
    4132:  Browsing Context Inspector
    4133:  can listen to browsing context destroyed event:
    4134:  TypeError: Cannot read properties of null (reading 'id')
    4135:  at Context.<anonymous> (/home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/test/bidi/browsingcontext_inspector_test.js:67:34)
    4136:  at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    4137:  2) [chrome]
    4138:  BiDi Input
    4139:  dragAndDrop():
    4140:  AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
    ...
    
    4144:  +1px
    4145:  at Context.<anonymous> (/home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/bin/javascript/node/selenium-webdriver/test/bidi/input_test.js:143:16)
    4146:  at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    4147:  ================================================================================
    4148:  Target //javascript/node/selenium-webdriver:chrome-browser-tests up-to-date:
    4149:  bazel-bin/javascript/node/selenium-webdriver/chrome-browser-tests.sh
    4150:  �[32mINFO: �[0mElapsed time: 461.064s, Critical Path: 438.74s
    4151:  �[32mINFO: �[0m2480 processes: 1428 disk cache hit, 1018 internal, 5 linux-sandbox, 26 local, 3 worker.
    4152:  �[32mINFO: �[0mBuild completed, 1 test FAILED, 2480 total actions
    4153:  //javascript/node/selenium-webdriver:chrome-browser-tests                �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 143.9s
    4154:  Stats over 3 runs: max = 143.9s, min = 137.9s, avg = 140.3s, dev = 2.6s
    4155:  /home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/chrome-browser-tests/test.log
    4156:  /home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/chrome-browser-tests/test_attempts/attempt_1.log
    4157:  /home/runner/.bazel/execroot/selenium/bazel-out/k8-fastbuild/testlogs/javascript/node/selenium-webdriver/chrome-browser-tests/test_attempts/attempt_2.log
    4158:  Executed 1 out of 1 test: �[0m�[31m�[1m1 fails locally�[0m.
    4159:  �[0m
    4160:  ##[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.

    Copy link
    Contributor

    @whimboo whimboo left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Thank you @diemol. I think that it would be good as well to have a test for this case similar like https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/atoms/test/text_test.html#L261.

    A1exKH

    This comment was marked as resolved.

    diemol and others added 2 commits April 10, 2024 11:18
    …ong-capitalized-text-when-underscores-are-used-since-pr-8736
    @diemol diemol merged commit 33c6b78 into trunk Apr 10, 2024
    37 of 39 checks passed
    @diemol diemol deleted the 13779-bug-seleniums-gettext-atom-returns-wrong-capitalized-text-when-underscores-are-used-since-pr-8736 branch April 10, 2024 12:02
    @whimboo
    Copy link
    Contributor

    whimboo commented Apr 10, 2024

    Thank you @diemol!!

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    [🐛 Bug]: Selenium's "getText" atom returns wrong capitalized text when underscores are used since PR 8736
    3 participants