SeleniumHQ / selenium

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

[build] Prepare for release of Selenium 4.22.0 #14163

Closed selenium-ci closed 1 week ago

selenium-ci commented 1 week ago

User description

Warning: Manually update the changelogs before merging

This PR:


PR Type

Enhancement, Dependencies


Description


Changes walkthrough ๐Ÿ“

Relevant files
Enhancement
23 files
v126Target.java
Update DevTools Target implementation to v126                       

java/src/org/openqa/selenium/devtools/v126/v126Target.java
  • Updated package references from v123 to v126.
  • Renamed class from v123Target to v126Target.
  • Updated method implementations to use v126 target model.
  • +12/-12 
    v126Network.java
    Update DevTools Network implementation to v126                     

    java/src/org/openqa/selenium/devtools/v126/v126Network.java
  • Updated package references from v123 to v126.
  • Renamed class from v123Network to v126Network.
  • Updated method implementations to use v126 network model.
  • +10/-10 
    v126Events.java
    Update DevTools Events implementation to v126                       

    java/src/org/openqa/selenium/devtools/v126/v126Events.java
  • Updated package references from v123 to v126.
  • Renamed class from v123Events to v126Events.
  • Updated method implementations to use v126 runtime model.
  • +9/-9     
    v126Domains.java
    Update DevTools Domains implementation to v126                     

    java/src/org/openqa/selenium/devtools/v126/v126Domains.java
  • Updated package references from v123 to v126.
  • Renamed class from v123Domains to v126Domains.
  • Updated method implementations to use v126 domain models.
  • +13/-13 
    v126Javascript.java
    Update DevTools Javascript implementation to v126               

    java/src/org/openqa/selenium/devtools/v126/v126Javascript.java
  • Updated package references from v123 to v126.
  • Renamed class from v123Javascript to v126Javascript.
  • Updated method implementations to use v126 page and runtime models.
  • +7/-7     
    v126Log.java
    Update DevTools Log implementation to v126                             

    java/src/org/openqa/selenium/devtools/v126/v126Log.java
  • Updated package references from v123 to v126.
  • Renamed class from v123Log to v126Log.
  • Updated method implementations to use v126 log model.
  • +5/-5     
    v126CdpInfo.java
    Update DevTools CDP Info to v126                                                 

    java/src/org/openqa/selenium/devtools/v126/v126CdpInfo.java
  • Updated package references from v123 to v126.
  • Renamed class from v123CdpInfo to v126CdpInfo.
  • Updated constructor to use v126Domains.
  • +4/-4     
    V126Domains.cs
    Update .NET DevTools Domains to v126                                         

    dotnet/src/webdriver/DevTools/v126/V126Domains.cs
  • Updated namespace from V123 to V126.
  • Renamed class from V123Domains to V126Domains.
  • Updated DevTools version to 126.
  • +11/-11 
    V126Network.cs
    Update .NET DevTools Network to v126                                         

    dotnet/src/webdriver/DevTools/v126/V126Network.cs
  • Updated namespace from V123 to V126.
  • Renamed class from V123Network to V126Network.
  • Updated method implementations to use v126 network and fetch models.
  • +12/-12 
    V126JavaScript.cs
    Update .NET DevTools JavaScript to v126                                   

    dotnet/src/webdriver/DevTools/v126/V126JavaScript.cs
  • Updated namespace from V123 to V126.
  • Renamed class from V123JavaScript to V126JavaScript.
  • Updated method implementations to use v126 runtime and page models.
  • +8/-8     
    V126Target.cs
    Update .NET DevTools Target to v126                                           

    dotnet/src/webdriver/DevTools/v126/V126Target.cs
  • Updated namespace from V123 to V126.
  • Renamed class from V123Target to V126Target.
  • Updated method implementations to use v126 target model.
  • +7/-7     
    V126Log.cs
    Update .NET DevTools Log to v126                                                 

    dotnet/src/webdriver/DevTools/v126/V126Log.cs
  • Updated namespace from V123 to V126.
  • Renamed class from V123Log to V126Log.
  • Updated method implementations to use v126 log model.
  • +7/-7     
    DevToolsDomains.cs
    Add support for DevTools v126 in .NET                                       

    dotnet/src/webdriver/DevTools/DevToolsDomains.cs - Updated supported DevTools versions to include v126.
    +1/-1     
    StableChannelChromeDriver.cs
    Update default ChromeDriver version to 126                             

    dotnet/test/common/CustomDriverConfigs/StableChannelChromeDriver.cs - Updated default browser version to 126.
    +1/-1     
    version.rb
    Update Ruby DevTools version to 0.126.0                                   

    rb/lib/selenium/devtools/version.rb - Updated DevTools version to 0.126.0.
    +1/-1     
    version.rb
    Update Ruby WebDriver version to 4.22.0                                   

    rb/lib/selenium/webdriver/version.rb - Updated WebDriver version to 4.22.0.
    +1/-1     
    selenium-dotnet-version.bzl
    Update .NET Selenium version and DevTools support               

    dotnet/selenium-dotnet-version.bzl
  • Updated Selenium version to 4.22.0.
  • Updated supported DevTools versions to include v126.
  • +2/-2     
    __init__.py
    Update Python WebDriver version to 4.22.0                               

    py/selenium/webdriver/__init__.py - Updated WebDriver version to 4.22.0.
    +1/-1     
    setup.py
    Update Python package version to 4.22.0                                   

    py/setup.py - Updated package version to 4.22.0.
    +1/-1     
    versions.bzl
    Add support for CDP v126 in Java                                                 

    java/src/org/openqa/selenium/devtools/versions.bzl - Updated supported CDP versions to include v126.
    +1/-1     
    __init__.py
    Update Python Selenium version to 4.22.0                                 

    py/selenium/__init__.py - Updated version to 4.22.0.
    +1/-1     
    version.bzl
    Update Java Selenium version to 4.22.0                                     

    java/version.bzl - Updated Selenium version to 4.22.0.
    +1/-1     
    js_protocol.pdl
    Add new protocol definition for v126                                         

    common/devtools/chromium/v126/js_protocol.pdl - Added new protocol definition for v126.
    +1807/-1
    Tests
    8 files
    DevToolsTargetTest.cs
    Update DevTools Target Test to v126                                           

    dotnet/test/common/DevTools/DevToolsTargetTest.cs - Updated CurrentCdpVersion to V126. - Updated test ID to 126.
    +3/-3     
    DevToolsConsoleTest.cs
    Update DevTools Console Test to v126                                         

    dotnet/test/common/DevTools/DevToolsConsoleTest.cs - Updated CurrentCdpVersion to V126.
    +2/-2     
    DevToolsNetworkTest.cs
    Update DevTools Network Test to v126                                         

    dotnet/test/common/DevTools/DevToolsNetworkTest.cs - Updated CurrentCdpVersion to V126.
    +2/-2     
    DevToolsPerformanceTest.cs
    Update DevTools Performance Test to v126                                 

    dotnet/test/common/DevTools/DevToolsPerformanceTest.cs - Updated CurrentCdpVersion to V126.
    +2/-2     
    DevToolsProfilerTest.cs
    Update DevTools Profiler Test to v126                                       

    dotnet/test/common/DevTools/DevToolsProfilerTest.cs - Updated CurrentCdpVersion to V126.
    +2/-2     
    DevToolsSecurityTest.cs
    Update DevTools Security Test to v126                                       

    dotnet/test/common/DevTools/DevToolsSecurityTest.cs - Updated CurrentCdpVersion to V126.
    +2/-2     
    DevToolsTabsTest.cs
    Update DevTools Tabs Test to v126                                               

    dotnet/test/common/DevTools/DevToolsTabsTest.cs - Updated CurrentCdpVersion to V126.
    +2/-2     
    DevToolsLogTest.cs
    Update DevTools Log Test to v126                                                 

    dotnet/test/common/DevTools/DevToolsLogTest.cs - Updated CurrentCdpVersion to V126.
    +1/-1     
    Dependencies
    5 files
    repositories.bzl
    Update pinned Firefox versions and URLs                                   

    common/repositories.bzl - Updated Firefox versions and URLs for Linux and Mac.
    +8/-8     
    selenium_manager.bzl
    Update Selenium Manager versions and URLs                               

    common/selenium_manager.bzl
  • Updated Selenium Manager versions and URLs for Linux, Mac, and
    Windows.
  • +6/-6     
    MODULE.bazel
    Update Maven dependencies                                                               

    MODULE.bazel - Updated Maven dependencies to newer versions.
    +25/-25 
    package-lock.json
    Update package-lock.json for 4.22.0                                           

    package-lock.json - Updated version to 4.22.0.
    +1/-1     
    package.json
    Update package.json for 4.22.0                                                     

    javascript/node/selenium-webdriver/package.json - Updated version to 4.22.0.
    +1/-1     
    Documentation
    7 files
    conf.py
    Update Python documentation version to 4.22.0                       

    py/docs/source/conf.py - Updated release version to 4.22.0.
    +1/-1     
    AUTHORS
    Add new authors to AUTHORS file                                                   

    AUTHORS - Added new authors to the AUTHORS file.
    +6/-0     
    CHANGELOG
    Update Java changelog for 4.22.0                                                 

    java/CHANGELOG - Added changelog entries for version 4.22.0.
    +16/-0   
    CHANGES
    Update Ruby changelog for 4.22.0                                                 

    rb/CHANGES - Added changelog entries for version 4.22.0.
    +14/-0   
    CHANGES
    Update Python changelog for 4.22.0                                             

    py/CHANGES - Added changelog entries for version 4.22.0.
    +11/-0   
    CHANGES.md
    Update JavaScript changelog for 4.22.0                                     

    javascript/node/selenium-webdriver/CHANGES.md - Added changelog entries for version 4.22.0.
    +8/-0     
    CHANGELOG
    Update .NET changelog for 4.22.0                                                 

    dotnet/CHANGELOG - Added changelog entries for version 4.22.0.
    +8/-0     
    Configuration changes
    7 files
    BUILD.bazel
    Add build rules for v126 protocol files                                   

    common/devtools/chromium/v126/BUILD.bazel - Added build rules for v126 protocol files.
    +38/-1   
    WebDriver.csproj
    Update .NET build command for v126 CDP                                     

    dotnet/src/webdriver/WebDriver.csproj - Updated build command to generate v126 CDP.
    +1/-1     
    Rakefile
    Update Rakefile for Java release targets                                 

    Rakefile - Updated Java release targets to include v126.
    +1/-1     
    BUILD.bazel
    Update JavaScript build configuration for 4.22.0                 

    javascript/node/selenium-webdriver/BUILD.bazel
  • Updated version to 4.22.0.
  • Updated supported browser versions to include v126.
  • +2/-2     
    BUILD.bazel
    Update Python build configuration for 4.22.0                         

    py/BUILD.bazel
  • Updated version to 4.22.0.
  • Updated supported browser versions to include v126.
  • +2/-2     
    BUILD.bazel
    Update build configuration for v126                                           

    java/src/org/openqa/selenium/devtools/v126/BUILD.bazel - Updated CDP version to v126.
    +1/-1     
    BUILD.bazel
    Update Ruby build configuration for v126                                 

    rb/lib/selenium/devtools/BUILD.bazel - Updated CDP version to v126.
    +1/-1     

    ๐Ÿ’ก 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

    CI Failure Feedback ๐Ÿง

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

    **Action:** Ruby / Remote Tests (edge, windows) / Remote Tests (edge, windows)
    **Failed stage:** [Run Bazel](https://github.com/SeleniumHQ/selenium/actions/runs/9603188050/job/26486031568) [โŒ]
    **Failed test name:** Selenium::WebDriver::Driver one element raises if invalid locator
    **Failure summary:** The action failed because the test Selenium::WebDriver::Driver one element raises if invalid locator
    failed. The test failed due to the following reasons:
  • The test expected an InvalidSelectorError to be raised when an invalid XPath expression '*?//-' was
    used.
  • Instead, a JavascriptError was raised with the message indicating that the string '*?//-' is not a
    valid XPath expression.
  • Relevant error logs: ```yaml 1: ##[group]Operating System 2: Microsoft Windows Server 2022 ... 728: [2,961 / 3,105] Running bundle install (@bundle//:bundle); 57s local, disk-cache ... (4 actions, 3 running) 729: [2,967 / 3,105] Running bundle install (@bundle//:bundle); 58s local, disk-cache ... (3 actions running) 730: [2,973 / 3,105] Running bundle install (@bundle//:bundle); 59s local, disk-cache ... (2 actions, 1 running) 731: [2,974 / 3,105] Running bundle install (@bundle//:bundle); 61s local, disk-cache ... (2 actions, 1 running) 732: [2,974 / 3,105] Running bundle install (@bundle//:bundle); 62s local, disk-cache ... (2 actions running) 733: [2,975 / 3,105] Running bundle install (@bundle//:bundle); 64s local, disk-cache ... (2 actions, 1 running) 734: [2,980 / 3,105] Running bundle install (@bundle//:bundle); 65s local, disk-cache ... (4 actions, 3 running) 735: INFO: From Building java/src/org/openqa/selenium/remote/libapi-class.jar (66 source files): 736: java\src\org\openqa\selenium\remote\ErrorHandler.java:46: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 737: private final ErrorCodes errorCodes; 738: ^ 739: java\src\org\openqa\selenium\remote\ErrorHandler.java:60: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 740: this.errorCodes = new ErrorCodes(); 741: ^ 742: java\src\org\openqa\selenium\remote\ErrorHandler.java:68: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 743: public ErrorHandler(ErrorCodes codes, boolean includeServerErrors) { 744: ^ 745: java\src\org\openqa\selenium\remote\Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 746: ErrorCodes errorCodes = new ErrorCodes(); 747: ^ 748: java\src\org\openqa\selenium\remote\Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 749: ErrorCodes errorCodes = new ErrorCodes(); 750: ^ 751: java\src\org\openqa\selenium\remote\ProtocolHandshake.java:181: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 752: response.setStatus(ErrorCodes.SUCCESS); 753: ^ 754: java\src\org\openqa\selenium\remote\ProtocolHandshake.java:182: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 755: response.setState(ErrorCodes.SUCCESS_STRING); 756: ^ 757: java\src\org\openqa\selenium\remote\W3CHandshakeResponse.java:53: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 758: new ErrorCodes().toStatus((String) rawError, Optional.of(tuple.getStatusCode()))); 759: ^ 760: java\src\org\openqa\selenium\remote\W3CHandshakeResponse.java:56: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 761: new ErrorCodes().getExceptionType((String) rawError); 762: ^ 763: java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 764: private final ErrorCodes errorCodes = new ErrorCodes(); 765: ^ 766: java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 767: private final ErrorCodes errorCodes = new ErrorCodes(); 768: ^ 769: java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:55: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 770: int status = response.getStatus() == ErrorCodes.SUCCESS ? HTTP_OK : HTTP_INTERNAL_ERROR; 771: ^ 772: java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:101: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 773: response.setStatus(ErrorCodes.UNKNOWN_COMMAND); 774: ^ 775: java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:103: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 776: response.setStatus(ErrorCodes.UNHANDLED_ERROR); 777: ^ 778: java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:124: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 779: response.setStatus(ErrorCodes.SUCCESS); 780: ^ 781: java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:125: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 782: response.setState(errorCodes.toState(ErrorCodes.SUCCESS)); 783: ^ 784: java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:131: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 785: response.setState(errorCodes.toState(ErrorCodes.SUCCESS)); 786: ^ 787: java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 788: private final ErrorCodes errorCodes = new ErrorCodes(); 789: ^ 790: java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 791: private final ErrorCodes errorCodes = new ErrorCodes(); 792: ^ 793: java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:93: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 794: response.setStatus(ErrorCodes.UNKNOWN_COMMAND); 795: ^ 796: java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:98: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 797: response.setStatus(ErrorCodes.UNHANDLED_ERROR); 798: ^ 799: java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:145: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal 800: response.setStatus(ErrorCodes.SUCCESS); ... 979: [3,112 / 3,128] 7 / 28 tests; Testing //rb/spec/integration/selenium/webdriver:driver-edge-remote; 202s local, disk-cache ... (4 actions, 2 running) 980: [3,113 / 3,128] 8 / 28 tests; Testing //rb/spec/integration/selenium/webdriver:driver-edge-remote; 203s local, disk-cache ... (4 actions, 1 running) 981: [3,113 / 3,128] 8 / 28 tests; Testing //rb/spec/integration/selenium/webdriver:driver-edge-remote; 213s local, disk-cache ... (4 actions, 1 running) 982: [3,113 / 3,128] 8 / 28 tests; Testing //rb/spec/integration/selenium/webdriver:driver-edge-remote; 215s local, disk-cache ... (4 actions, 1 running) 983: [3,113 / 3,128] 8 / 28 tests; Testing //rb/spec/integration/selenium/webdriver:driver-edge-remote; 236s local, disk-cache ... (4 actions, 2 running) 984: FAIL: //rb/spec/integration/selenium/webdriver:driver-edge-remote (see D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/driver-edge-remote/test.log) 985: ==================== Test output for //rb/spec/integration/selenium/webdriver:driver-edge-remote: 986: 2024-06-20 19:45:32 INFO Selenium Server Location: D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/bin/rb/spec/integration/selenium/webdriver/driver-edge-remote.cmd.runfiles/_main/java/src/org/openqa/selenium/grid/selenium_server_deploy.jar 987: FAILED: //rb/spec/integration/selenium/webdriver:driver-edge-remote (Summary) ... 1013: finds by xpath 1014: finds by css selector 1015: finds by tag name 1016: finds above another 1017: finds child element 1018: finds child element by tag name 1019: finds elements with the shortcut syntax 1020: raises if element not found 1021: raises if invalid locator (FAILED - 1) ... 1051: is able to pass element arguments 1052: is able to pass in multiple arguments 1053: execute async script 1054: is able to return arrays of primitives from async scripts 1055: is able to pass multiple arguments to async scripts 1056: times out if the callback is not invoked 1057: Failures: 1058: 1) Selenium::WebDriver::Driver one element raises if invalid locator 1059: Failure/Error: 1060: expect { 1061: driver.find_element(xpath: '*?//-') 1062: }.to raise_error(Error::InvalidSelectorError, /errors#invalid-selector-exception/) 1063: expected Selenium::WebDriver::Error::InvalidSelectorError with message matching /errors#invalid-selector-exception/, got #' 1102: # ./rb/spec/integration/selenium/webdriver/driver_spec.rb:153:in `block (3 levels) in ' 1103: # ./rb/spec/integration/selenium/webdriver/driver_spec.rb:153:in `block (3 levels) in ' 1104: Finished in 26.94 seconds (files took 0.65963 seconds to load) 1105: 51 examples, 1 failure 1106: Failed examples: ... 1132: finds by xpath 1133: finds by css selector 1134: finds by tag name 1135: finds above another 1136: finds child element 1137: finds child element by tag name 1138: finds elements with the shortcut syntax 1139: raises if element not found 1140: raises if invalid locator (FAILED - 1) ... 1170: is able to pass element arguments 1171: is able to pass in multiple arguments 1172: execute async script 1173: is able to return arrays of primitives from async scripts 1174: is able to pass multiple arguments to async scripts 1175: times out if the callback is not invoked 1176: Failures: 1177: 1) Selenium::WebDriver::Driver one element raises if invalid locator 1178: Failure/Error: 1179: expect { 1180: driver.find_element(xpath: '*?//-') 1181: }.to raise_error(Error::InvalidSelectorError, /errors#invalid-selector-exception/) 1182: expected Selenium::WebDriver::Error::InvalidSelectorError with message matching /errors#invalid-selector-exception/, got #' 1221: # ./rb/spec/integration/selenium/webdriver/driver_spec.rb:153:in `block (3 levels) in ' 1222: # ./rb/spec/integration/selenium/webdriver/driver_spec.rb:153:in `block (3 levels) in ' 1223: Finished in 26.8 seconds (files took 0.64547 seconds to load) 1224: 51 examples, 1 failure 1225: Failed examples: ... 1251: finds by xpath 1252: finds by css selector 1253: finds by tag name 1254: finds above another 1255: finds child element 1256: finds child element by tag name 1257: finds elements with the shortcut syntax 1258: raises if element not found 1259: raises if invalid locator (FAILED - 1) ... 1289: is able to pass element arguments 1290: is able to pass in multiple arguments 1291: execute async script 1292: is able to return arrays of primitives from async scripts 1293: is able to pass multiple arguments to async scripts 1294: times out if the callback is not invoked 1295: Failures: 1296: 1) Selenium::WebDriver::Driver one element raises if invalid locator 1297: Failure/Error: 1298: expect { 1299: driver.find_element(xpath: '*?//-') 1300: }.to raise_error(Error::InvalidSelectorError, /errors#invalid-selector-exception/) 1301: expected Selenium::WebDriver::Error::InvalidSelectorError with message matching /errors#invalid-selector-exception/, got #' 1340: # ./rb/spec/integration/selenium/webdriver/driver_spec.rb:153:in `block (3 levels) in ' 1341: # ./rb/spec/integration/selenium/webdriver/driver_spec.rb:153:in `block (3 levels) in ' 1342: Finished in 26.78 seconds (files took 0.67558 seconds to load) 1343: 51 examples, 1 failure 1344: Failed examples: 1345: rspec ./rb/spec/integration/selenium/webdriver/driver_spec.rb:150 # Selenium::WebDriver::Driver one element raises if invalid locator 1346: ================================================================================ 1347: [3,114 / 3,128] 9 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:select-edge-remote; 53s ... (4 actions, 1 running) 1348: [3,114 / 3,128] 9 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:select-edge-remote; 64s ... (4 actions, 1 running) 1349: [3,114 / 3,128] 9 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:select-edge-remote; 65s ... (4 actions, 1 running) 1350: [3,114 / 3,128] 9 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:guard-edge-remote; 39s ... (4 actions, 2 running) 1351: [3,115 / 3,128] 10 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:guard-edge-remote; 41s ... (4 actions, 1 running) 1352: [3,115 / 3,128] 10 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:guard-edge-remote; 51s ... (4 actions, 1 running) 1353: [3,115 / 3,128] 10 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:guard-edge-remote; 53s ... (4 actions, 1 running) 1354: [3,115 / 3,128] 10 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:virtual_authenticator-edge-remote; 30s ... (4 actions, 2 running) 1355: [3,116 / 3,128] 11 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:virtual_authenticator-edge-remote; 32s ... (4 actions, 1 running) 1356: [3,116 / 3,128] 11 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:virtual_authenticator-edge-remote; 41s ... (4 actions, 1 running) 1357: [3,116 / 3,128] 11 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:virtual_authenticator-edge-remote; 43s ... (4 actions, 1 running) 1358: [3,116 / 3,128] 11 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:timeout-edge-remote; 27s ... (4 actions, 2 running) 1359: [3,117 / 3,128] 12 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:timeout-edge-remote; 29s ... (4 actions, 1 running) 1360: [3,117 / 3,128] 12 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:timeout-edge-remote; 39s ... (4 actions, 1 running) 1361: [3,117 / 3,128] 12 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:timeout-edge-remote; 40s ... (4 actions, 1 running) 1362: [3,117 / 3,128] 12 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:driver-edge-remote; 20s ... (4 actions, 2 running) 1363: [3,118 / 3,128] 13 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:driver-edge-remote; 21s ... (4 actions, 1 running) 1364: [3,118 / 3,128] 13 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:driver-edge-remote; 31s ... (4 actions, 1 running) 1365: [3,118 / 3,128] 13 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:driver-edge-remote; 33s ... (4 actions, 1 running) 1366: [3,118 / 3,128] 13 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:profile-edge-remote; 28s ... (4 actions, 2 running) 1367: [3,119 / 3,128] 14 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:profile-edge-remote; 30s ... (4 actions, 1 running) 1368: [3,119 / 3,128] 14 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:profile-edge-remote; 39s ... (4 actions, 1 running) 1369: [3,119 / 3,128] 14 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:profile-edge-remote; 41s ... (4 actions, 1 running) 1370: [3,119 / 3,128] 14 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:options-edge-remote; 48s ... (4 actions, 2 running) 1371: [3,120 / 3,128] 15 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:options-edge-remote; 49s ... (4 actions, 1 running) 1372: [3,120 / 3,128] 15 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:options-edge-remote; 59s ... (4 actions, 1 running) 1373: [3,120 / 3,128] 15 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/edge:options-edge-remote; 60s ... (4 actions, 1 running) 1374: [3,120 / 3,128] 15 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:zipper-edge-remote; 39s ... (4 actions, 2 running) 1375: [3,121 / 3,128] 16 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:zipper-edge-remote; 41s ... (4 actions, 1 running) 1376: [3,121 / 3,128] 16 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:zipper-edge-remote; 51s ... (4 actions, 1 running) 1377: [3,121 / 3,128] 16 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:zipper-edge-remote; 52s ... (4 actions, 1 running) 1378: [3,121 / 3,128] 16 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:navigation-edge-remote; 24s ... (4 actions, 2 running) 1379: [3,122 / 3,128] 17 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:navigation-edge-remote; 26s ... (4 actions, 1 running) 1380: [3,122 / 3,128] 17 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:navigation-edge-remote; 36s ... (4 actions, 1 running) 1381: [3,122 / 3,128] 17 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:navigation-edge-remote; 37s ... (4 actions, 1 running) 1382: [3,122 / 3,128] 17 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 24s ... (4 actions, 2 running) 1383: [3,123 / 3,128] 18 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 25s ... (4 actions, 1 running) 1384: [3,123 / 3,128] 18 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 36s ... (4 actions, 1 running) 1385: [3,123 / 3,128] 18 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 38s ... (4 actions, 1 running) 1386: [3,123 / 3,128] 18 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 20s ... (4 actions, 2 running) 1387: [3,124 / 3,128] 19 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 22s ... (4 actions, 1 running) 1388: [3,124 / 3,128] 19 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 31s ... (4 actions, 1 running) 1389: [3,124 / 3,128] 19 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 33s ... (4 actions, 1 running) 1390: [3,124 / 3,128] 19 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:window-edge-remote; 21s ... (4 actions, 2 running) 1391: [3,125 / 3,128] 20 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:window-edge-remote; 22s ... (3 actions, 1 running) 1392: [3,125 / 3,128] 20 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:window-edge-remote; 32s ... (3 actions, 1 running) 1393: [3,125 / 3,128] 20 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:shadow_root-edge-remote; 31s ... (3 actions, 2 running) 1394: [3,126 / 3,128] 21 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:shadow_root-edge-remote; 33s ... (2 actions, 1 running) 1395: [3,126 / 3,128] 21 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:shadow_root-edge-remote; 43s ... (2 actions, 1 running) 1396: [3,126 / 3,128] 21 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:window-edge-remote; 17s local, disk-cache ... (2 actions running) 1397: [3,127 / 3,128] 22 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:shadow_root-edge-remote; 1s local, disk-cache 1398: [3,127 / 3,128] 22 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:shadow_root-edge-remote; 11s local, disk-cache 1399: [3,127 / 3,128] 22 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:shadow_root-edge-remote; 28s local, disk-cache 1400: [3,128 / 3,129] 23 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote; 0s disk-cache 1401: [3,128 / 3,129] 23 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote 1402: [3,128 / 3,129] 23 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote; 1s local, disk-cache 1403: [3,128 / 3,129] 23 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote; 14s local, disk-cache 1404: [3,129 / 3,130] 24 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:devtools-edge-remote; 0s disk-cache 1405: [3,129 / 3,130] 24 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:devtools-edge-remote 1406: [3,129 / 3,130] 24 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:devtools-edge-remote; 1s local, disk-cache 1407: [3,129 / 3,130] 24 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:devtools-edge-remote; 85s local, disk-cache 1408: [3,130 / 3,131] 25 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote; 0s disk-cache 1409: [3,130 / 3,131] 25 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote 1410: [3,130 / 3,131] 25 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote; 1s local, disk-cache 1411: [3,130 / 3,131] 25 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote; 14s local, disk-cache 1412: [3,131 / 3,132] 26 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote; 0s disk-cache 1413: [3,131 / 3,132] 26 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote 1414: [3,131 / 3,132] 26 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote; 1s local, disk-cache 1415: [3,131 / 3,132] 26 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote; 14s local, disk-cache 1416: [3,132 / 3,133] 27 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:bidi-edge-remote; 1s disk-cache 1417: [3,132 / 3,133] 27 / 28 tests, 1 failed; [Sched] Testing //rb/spec/integration/selenium/webdriver:bidi-edge-remote 1418: [3,132 / 3,133] 27 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:bidi-edge-remote; 1s local, disk-cache 1419: [3,132 / 3,133] 27 / 28 tests, 1 failed; Testing //rb/spec/integration/selenium/webdriver:bidi-edge-remote; 14s local, disk-cache 1420: INFO: Found 28 test targets... 1421: INFO: Elapsed time: 1283.572s, Critical Path: 556.48s 1422: INFO: 2895 processes: 1333 disk cache hit, 1189 internal, 288 local, 85 worker. 1423: INFO: Build completed, 1 test FAILED, 2895 total actions 1424: //rb/spec/integration/selenium/webdriver:action_builder-edge-remote PASSED in 28.1s 1425: //rb/spec/integration/selenium/webdriver:bidi-edge-remote PASSED in 14.4s 1426: //rb/spec/integration/selenium/webdriver:devtools-edge-remote PASSED in 85.3s 1427: //rb/spec/integration/selenium/webdriver:element-edge-remote PASSED in 29.7s 1428: //rb/spec/integration/selenium/webdriver:error-edge-remote PASSED in 16.0s ... 1443: //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote PASSED in 14.5s 1444: //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote PASSED in 14.5s 1445: //rb/spec/integration/selenium/webdriver/edge:driver-edge-remote PASSED in 36.7s 1446: //rb/spec/integration/selenium/webdriver/edge:options-edge-remote PASSED in 21.3s 1447: //rb/spec/integration/selenium/webdriver/edge:profile-edge-remote PASSED in 14.9s 1448: //rb/spec/integration/selenium/webdriver/edge:service-edge-remote PASSED in 21.0s 1449: //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote PASSED in 27.4s 1450: //rb/spec/integration/selenium/webdriver/remote:element-edge-remote PASSED in 16.4s 1451: //rb/spec/integration/selenium/webdriver:driver-edge-remote FAILED in 3 out of 3 in 34.0s 1452: Stats over 3 runs: max = 34.0s, min = 33.7s, avg = 33.8s, dev = 0.1s 1453: D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/driver-edge-remote/test.log 1454: D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/driver-edge-remote/test_attempts/attempt_1.log 1455: D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/driver-edge-remote/test_attempts/attempt_2.log 1456: Executed 28 out of 28 tests: 27 tests pass and 1 fails locally. 1457: There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are. 1458:  1459: ##[error]Process completed with exit code 1. ```

    โœจ 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/).
    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 Possible Bug:
    The PR introduces a large number of changes across multiple files and languages. It is crucial to ensure that all updates, especially those related to version updates and dependencies, are compatible and do not introduce any breaking changes.
    Performance Concerns:
    The updates to libraries such as Netty, OpenTelemetry, and others could potentially affect performance. It is important to verify that these updates improve or at least do not degrade performance.
    Dependency Management:
    The PR updates several dependencies. It is essential to ensure that these updates do not introduce conflicts with other parts of the system.
    codiumai-pr-agent-pro[bot] commented 1 week ago

    PR Code Suggestions โœจ

    CategorySuggestion                                                                                                                                    Score
    Possible issue
    Add a null check for the constructor parameter to prevent potential NullPointerException ___ **Add a null check for the devTools parameter in the v126Network constructor to prevent
    potential NullPointerException.** [java/src/org/openqa/selenium/devtools/v126/v126Network.java [44-46]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-fa6df2d661f1a4bc97af82a5d7f5f04c7c9da094358c1c9cb923ee54d583e2b0R44-R46) ```diff public v126Network(DevTools devTools) { - super(devTools); + super(Require.nonNull("DevTools", devTools)); } ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 8 Why: Adding a null check is a crucial improvement for preventing runtime exceptions and ensuring the stability of the application.
    8
    Add null checks for constructor parameters to prevent potential NullReferenceException issues ___ **Consider adding null checks for the network and fetch parameters in the constructor to
    prevent potential NullReferenceException issues.** [dotnet/src/webdriver/DevTools/v126/V126Network.cs [41-44]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-755f8dfdb4ecfd9371c26442af260a73916b19dec289eb30fe025add4cdfe8e6R41-R44) ```diff public V126Network(NetworkAdapter network, FetchAdapter fetch) { - this.network = network; - this.fetch = fetch; + this.network = network ?? throw new ArgumentNullException(nameof(network)); + this.fetch = fetch ?? throw new ArgumentNullException(nameof(fetch)); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: Adding null checks is a good practice to prevent runtime exceptions, enhancing the robustness of the code. The suggestion correctly identifies the potential issue and provides an appropriate solution.
    7
    Best practice
    Initialize v126Target with the devtools parameter for consistency ___ **Consider initializing the v126Target with the devtools parameter to maintain consistency
    with other domain initializations.** [java/src/org/openqa/selenium/devtools/v126/v126Domains.java [43]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-16f2ca11d0b0283c83f1dcfc0e8b98573fd164e70d140ab38bcbce4b45573984R43-R43) ```diff -target = new v126Target(); +target = new v126Target(devtools); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: The suggestion promotes consistency across the codebase, which is beneficial for maintainability, although the current code does not show inconsistency in initialization.
    7
    Verify the compatibility and testing of the newly added version in SUPPORTED_DEVTOOLS_VERSIONS ___ **Ensure that the new version "v126" added to SUPPORTED_DEVTOOLS_VERSIONS is compatible with
    the rest of the codebase and has been thoroughly tested.** [dotnet/selenium-dotnet-version.bzl [10]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-22cccdd47f702f3fdc2c7f0e5c4fa935f24960d50a2ad9b89e926a105040ddfeR10-R10) ```diff -"v126", +"v126", # Ensure compatibility and thorough testing ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 5 Why: Ensuring compatibility and testing is important, but the suggestion lacks specific details on how to verify this.
    5
    Maintainability
    Use a constant for the version number to avoid hardcoding it in multiple places ___ **Consider using a constant for the version number to avoid hardcoding it in multiple
    places, which can help prevent inconsistencies during updates.** [py/selenium/webdriver/__init__.py [47]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-732bc7e9407665904a87e936982e0941f13539f354f03b205efcd65ed803d28dR47-R47) ```diff -__version__ = "4.22.0" +from ..version import VERSION +__version__ = VERSION ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: Using a constant for version numbers is a good practice to avoid inconsistencies, especially given multiple occurrences across files.
    7
    Read the version number from a single source of truth to avoid discrepancies ___ **Consider reading the version number from a single source of truth, such as a version file,
    to avoid discrepancies and make version management easier.** [py/setup.py [30]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-722aeeec2821793eb6adf0c529cc7439c4b27ce78937cbb8840e94d4fc1c4017R30-R30) ```diff -'version': "4.22.0", +'version': open(join(abspath(dirname(__file__)), "VERSION")).read().strip(), ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: Centralizing the version number in a single file is a good practice for maintainability and consistency, aligning with the changes in multiple files.
    7
    Add comments explaining the purpose of the sha256 and url fields in the http_file rules ___ **Consider adding a comment explaining the purpose of the sha256 and url fields for each
    http_file rule. This will help future maintainers understand why these specific values are
    used and how they should be updated.** [common/selenium_manager.bzl [9-10]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-d0093198a3b6f9fd0f2a0f868a56a007549e95b66c70f03820f27ce13de6ab58R9-R10) ```diff +# SHA256 checksum for the downloaded file to ensure integrity sha256 = "e52191930dd1bcfaf0a4c2ca0d063619467091faf28f19bbd0c1a20cfc13278a", +# URL to download the selenium manager for Linux url = "https://github.com/SeleniumHQ/selenium_manager_artifacts/releases/download/selenium-manager-e3f9990/selenium-manager-linux", ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 6 Why: Adding comments enhances maintainability by explaining the purpose of specific fields, which is helpful but not critical.
    6
    Group related commands together for better readability and maintainability ___ **To improve readability and maintainability, consider grouping related commands together,
    such as placing all breakpoint related commands in a contiguous block.** [common/devtools/chromium/v126/js_protocol.pdl [306-332]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-0cdbe01ee99071ca3fd7a8a61cfd18d05aeb7fd5266285b1a60e54a96ae42001R306-R332) ```diff command removeBreakpoint parameters BreakpointId breakpointId + +command setBreakpoint + parameters + Location location + optional string condition + returns + BreakpointId breakpointId + Location actualLocation + +command setBreakpointByUrl + parameters + integer lineNumber + optional string url + optional string urlRegex + optional string scriptHash + optional integer columnNumber + optional string condition + returns + BreakpointId breakpointId + array of Location locations command restartFrame parameters CallFrameId callFrameId experimental optional enum mode StepInto ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 5 Why: Grouping related commands can indeed improve readability and maintainability. However, the suggestion does not reflect a critical change and the existing structure might already have a logical grouping that is not evident without full context.
    5
    Validation
    Add validation to ensure lineNumber and columnNumber are non-negative integers ___ **Consider adding a validation step to ensure that the lineNumber and columnNumber
    properties in the Location type are non-negative integers. This can help prevent potential
    issues where negative values might be inadvertently assigned.** [common/devtools/chromium/v126/js_protocol.pdl [73-80]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-0cdbe01ee99071ca3fd7a8a61cfd18d05aeb7fd5266285b1a60e54a96ae42001R73-R80) ```diff type Location extends object properties # Script identifier as reported in the `Debugger.scriptParsed`. Runtime.ScriptId scriptId # Line number in the script (0-based). - integer lineNumber + integer lineNumber (>= 0) # Column number in the script (0-based). - optional integer columnNumber + optional integer columnNumber (>= 0) ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: Adding validation for non-negative integers for `lineNumber` and `columnNumber` is a good practice to ensure data integrity and prevent errors. The suggestion correctly identifies the relevant section of the code and proposes a practical improvement.
    7
    Add validation to ensure scopeNumber is within a valid range ___ **Ensure that the setVariableValue command includes validation to check that scopeNumber is
    within a valid range, as this can prevent out-of-bounds errors.** [common/devtools/chromium/v126/js_protocol.pdl [526-536]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-0cdbe01ee99071ca3fd7a8a61cfd18d05aeb7fd5266285b1a60e54a96ae42001R526-R536) ```diff command setVariableValue parameters - integer scopeNumber + integer scopeNumber (>= 0) string variableName Runtime.CallArgument newValue CallFrameId callFrameId ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 7 Why: Ensuring that `scopeNumber` is within a valid range is crucial for preventing out-of-bounds errors. The suggestion is relevant and targets a specific improvement in the code's robustness.
    7
    Enhancement
    Use static imports to reduce verbosity in the detachFromTarget method ___ **Consider using a static import for
    org.openqa.selenium.devtools.v126.target.model.SessionID and
    org.openqa.selenium.devtools.v126.target.model.TargetID to improve readability and reduce
    verbosity in the detachFromTarget method.** [java/src/org/openqa/selenium/devtools/v126/v126Target.java [41-45]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-efb84d0725d225f558f2781e8890ef23c1f27eec250843643ae77956a0fce6dfR41-R45) ```diff return Target.detachFromTarget( - sessionId.map( - id -> new org.openqa.selenium.devtools.v126.target.model.SessionID(id.toString())), - targetId.map( - id -> new org.openqa.selenium.devtools.v126.target.model.TargetID(id.toString()))); + sessionId.map(id -> new SessionID(id.toString())), + targetId.map(id -> new TargetID(id.toString()))); ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 6 Why: The suggestion correctly identifies an opportunity to improve code readability by using static imports, although it's a minor enhancement.
    6
    Documentation
    Add a description for the stepInto command to clarify its purpose ___ **Add a brief description for the stepInto command to clarify its purpose and usage, similar
    to other commands.** [common/devtools/chromium/v126/js_protocol.pdl [539-541]](https://github.com/SeleniumHQ/selenium/pull/14163/files#diff-0cdbe01ee99071ca3fd7a8a61cfd18d05aeb7fd5266285b1a60e54a96ae42001R539-R541) ```diff +# Steps into the function call. command stepInto parameters # Debugger will pause on the execution of the first async task which was scheduled ``` - [ ] **Apply this suggestion**
    Suggestion importance[1-10]: 6 Why: Adding a description to the `stepInto` command enhances documentation and user understanding. This is a beneficial suggestion that aligns with best practices for clear code documentation.
    6