You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
Fixes#14757
This supports a use case where user can trigger recording in the browser node itself via env var in this feat SeleniumHQ/docker-selenium#2539
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)
The video container logic now returns null in two cases but there's no documentation about the behavior change. This could affect downstream code expecting non-null containers.
if (videoImage == null || !recordVideoForSession(sessionCapabilities)) {
returnnull;
Why: Using a constant for the "false" string would improve maintainability and reduce magic strings in the code. This is a good practice, though not critical for functionality.
5
Possible issue
Separate null checks from business logic to prevent potential null pointer exceptions and improve code clarity
Add a null check for videoImage before attempting to access its properties or methods in other parts of the code to prevent potential NullPointerExceptions.
Why: While the suggestion aims to improve code clarity by separating conditions, the existing code is already safe and follows common practice of combining related conditions. The change would add unnecessary verbosity.
Failed test name: Selenium::WebDriver::DevTools sends commands
Failure summary:
The action failed because the Firefox DevTools integration tests failed. Specifically:
The test 'Selenium::WebDriver::DevTools sends commands' failed because the expected page title "XHTML Test Page" was not found (got empty string instead)
Multiple Firefox-specific DevTools features are not yet supported or have known bugs: - Runtime.addBinding is not supported - Fetch.enable is not supported (affects network interception)
- Event handling has issues (tracked in Firefox bug #1819965) - The pin_script method is not implemented for Firefox
Relevant error logs:
1: ##[group]Operating System2: macOS
...
726: �[32m[1,299 / 1,321]�[0m 2 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:element-firefox; 117s local, disk-cache ... (3 actions, 1 running)727: �[32m[1,299 / 1,321]�[0m 2 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:element-firefox; 149s local, disk-cache ... (3 actions, 1 running)728: �[32m[1,299 / 1,321]�[0m 2 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:element-firefox; 167s local, disk-cache ... (3 actions, 2 running)729: �[35mFLAKY: �[0m//rb/spec/integration/selenium/webdriver:element-firefox (Summary)730: /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/element-firefox/test_attempts/attempt_1.log731: �[32mINFO: �[0mFrom Testing //rb/spec/integration/selenium/webdriver:element-firefox:732: ==================== Test output for //rb/spec/integration/selenium/webdriver:element-firefox:733: Running Ruby specs:734: An error occurred in a `before(:suite)` hook.735: Failure/Error: (io = @io.to_io).wait_readable(@read_timeout) or raise Net::ReadTimeout.new(io)
...
748: # ./rb/lib/selenium/webdriver/common/driver.rb:53:in `for'749: # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb:253:in `firefox_driver'750: # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb:171:in `create_driver!'751: # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb:61:in `driver_instance'752: # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb:206:in `current_env'753: # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_support/test_environment.rb:42:in `print_env'754: # /Users/runner/work/selenium/selenium/rb/spec/integration/selenium/webdriver/spec_helper.rb:41:in `block (2 levels) in <top (required)>'755: Finished in 1 minute 2.36 seconds (files took 0.36346 seconds to load)756: 0 examples, 0 failures, 1 error occurred outside of examples
...
814: 2025-01-08 09:57:50 DEBUG Selenium [:command] >>> http://127.0.0.1:4444/session/6cfdb91b-23e0-461e-9a7b-22beb6ca497c/url | {"url":"http://localhost:49807/blank.html"} 815: 2025-01-08 09:57:50 DEBUG Selenium [:header] > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"=>"selenium/4.28.0.nightly (ruby macosx)", "Content-Length"=>"43"} 816: 2025-01-08 09:57:51 DEBUG Selenium [:header] <<< {"content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"], "content-length"=>["14"], "date"=>["Wed, 08 Jan 2025 09:57:50 GMT"]} 817: 2025-01-08 09:57:51 DEBUG Selenium [:command] <- {"value":null} 818: 2025-01-08 09:57:51 DEBUG Selenium [:command] -> POST session/6cfdb91b-23e0-461e-9a7b-22beb6ca497c/element 819: 2025-01-08 09:57:51 DEBUG Selenium [:command] >>> http://127.0.0.1:4444/session/6cfdb91b-23e0-461e-9a7b-22beb6ca497c/element | {"using":"css selector","value":"#webextensions\\-selenium\\-example"} 820: 2025-01-08 09:57:51 DEBUG Selenium [:header] > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"=>"selenium/4.28.0.nightly (ruby macosx)", "Content-Length"=>"70"} 821: 2025-01-08 09:57:51 DEBUG Selenium [:header] <<< {"content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"], "content-length"=>["419"], "date"=>["Wed, 08 Jan 2025 09:57:50 GMT"]} 822: 2025-01-08 09:57:51 DEBUG Selenium [:command] <- {"value":{"error":"no such element","message":"Unable to locate element: #webextensions\\-selenium\\-example","stacktrace":"RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8\nWebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5\nNoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:511:5\ndom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:16\n"}}
...
841: 2025-01-08 09:57:52 DEBUG Selenium [:command] -> POST session 842: 2025-01-08 09:57:52 DEBUG Selenium [:command] >>> http://127.0.0.1:4444/session | {"capabilities":{"alwaysMatch":{"acceptInsecureCerts":true,"browserName":"firefox","moz:firefoxOptions":{"binary":"external/_main~pin_browsers_extension~mac_firefox/Firefox.app/Contents/MacOS/firefox","prefs":{"remote.active-protocols":3}},"moz:debuggerAddress":true}}} 843: 2025-01-08 09:57:52 DEBUG Selenium [:header] > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"=>"selenium/4.28.0.nightly (ruby macosx)", "Content-Length"=>"269"} 844: 1736330272803 webdriver::server DEBUG -> POST /session {"capabilities":{"alwaysMatch":{"acceptInsecureCerts":true,"browserName":"firefox","moz:firefoxOptions":{"bi ... xtension~mac_firefox/Firefox.app/Contents/MacOS/firefox","prefs":{"remote.active-protocols":3}},"moz:debuggerAddress":true}}}845: 1736330272803 geckodriver::capabilities DEBUG Trying to read firefox version from ini files846: 1736330272805 geckodriver::capabilities DEBUG Found version 133.0.3847: 1736330272813 mozrunner::runner INFO Running command: MOZ_CRASHREPORTER="1" MOZ_CRASHREPORTER_NO_REPORT="1" MOZ_CRASHREPORTER_SHUTDOWN="1" MOZ_NO_REMOTE="1" "exte ... s" "localhost" "-foreground" "-no-remote" "-profile" "/var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K"848: 1736330272814 geckodriver::marionette DEBUG Waiting 60s to connect to browser on 127.0.0.1849: 1736330272814 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort850: 1736330272814 geckodriver::marionette TRACE Retrying in 100ms851: 1736330272944 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort852: 1736330272944 geckodriver::marionette TRACE Retrying in 100ms853: 1736330273131 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort854: 1736330273131 geckodriver::marionette TRACE Retrying in 100ms855: console.warn: services.settings: Ignoring preference override of remote settings server856: console.warn: services.settings: Allow by setting MOZ_REMOTE_SETTINGS_DEVTOOLS=1 in the environment857: 1736330273336 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort858: 1736330273336 geckodriver::marionette TRACE Retrying in 100ms859: 1736330273583 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort
...
917: 1736330273704 RemoteAgent DEBUG Setting recommended pref security.remote_settings.intermediates.enabled to false918: 1736330273704 RemoteAgent DEBUG Setting recommended pref signon.autofillForms to false919: 1736330273704 RemoteAgent DEBUG Setting recommended pref signon.rememberSignons to false920: 1736330273704 RemoteAgent DEBUG Setting recommended pref toolkit.telemetry.server to https://%(server)s/telemetry-dummy/921: 1736330273704 RemoteAgent DEBUG Setting recommended pref widget.windows.window_occlusion_tracking.enabled to false922: 1736330273705 RemoteAgent DEBUG WebDriver BiDi enabled923: 1736330273706 RemoteAgent DEBUG CDP enabled924: 1736330273706 Marionette INFO Marionette enabled925: 1736330273833 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort926: 1736330273833 geckodriver::marionette TRACE Retrying in 100ms927: 1736330274084 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort928: 1736330274084 geckodriver::marionette TRACE Retrying in 100ms929: 1736330274215 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort930: 1736330274215 geckodriver::marionette TRACE Retrying in 100ms931: 1736330274318 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort932: 1736330274318 geckodriver::marionette TRACE Retrying in 100ms933: 1736330274433 Marionette TRACE Received observer notification final-ui-startup934: 1736330274436 RemoteAgent TRACE Received observer notification final-ui-startup935: 1736330274561 geckodriver::browser TRACE Failed to open /var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K/MarionetteActivePort936: 1736330274561 geckodriver::marionette TRACE Retrying in 100ms937: console.error: "Warning: unrecognized command line flag" "-remote-allow-hosts"938: 1736330274675 Marionette INFO Listening on port 49829939: 1736330274677 Marionette DEBUG Marionette is listening940: Read port: 49829941: 1736330274853 RemoteAgent TRACE Available local IP addresses: 127.0.0.1, [::1]942: !!! could not start server on port 9222: [Exception... "Component returned failure code: 0x804b0036 (NS_ERROR_SOCKET_ADDRESS_IN_USE) [nsIServerSocket.init]" nsresult: "0x804b0036 (NS_ERROR_SOCKET_ADDRESS_IN_USE)" location: "JS frame :: chrome://remote/content/server/httpd.sys.mjs :: _start :: line 556" data: no]943: 1736330274860 RemoteAgent ERROR Unable to stop listener: [Exception... "Unexpected error" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/server/httpd.sys.mjs :: stop :: line 610" data: no] Stack trace: stop()@httpd.sys.mjs:610944: #stop()@RemoteAgent.sys.mjs:353945: 1736330274860 RemoteAgent ERROR Unable to start remote agent: : [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: chrome://remote/content/server/httpd.sys.mjs :: _start :: line 601" data: no] Stack trace: _start()@httpd.sys.mjs:601946: #listen()@RemoteAgent.sys.mjs:272947: 1736330274874 Marionette DEBUG Accepted connection 0 from 127.0.0.1:49830948: 1736330274923 geckodriver::marionette DEBUG Connection to Marionette established on 127.0.0.1:49829.949: 1736330275006 Marionette DEBUG 0 -> [0,1,"WebDriver:NewSession",{"acceptInsecureCerts":true,"browserName":"firefox"}]950: 1736330275009 RemoteAgent WARN TLS certificate errors will be ignored for this session951: 1736330275010 Marionette DEBUG Waiting for initial application window952: 1736330278480 Marionette TRACE Received observer notification browser-idle-startup-tasks-finished953: 1736330278482 RemoteAgent TRACE Received observer notification browser-idle-startup-tasks-finished954: 1736330278493 RemoteAgent TRACE [9] ProgressListener Start: expectNavigation=false resolveWhenStarted=false unloadTimeout=5000 waitForExplicitStart=false955: 1736330278493 RemoteAgent TRACE [9] ProgressListener Setting unload timer (5000ms)956: 1736330278494 RemoteAgent TRACE [9] Wait for initial navigation: isInitial=false, isLoadingDocument=false957: 1736330278494 RemoteAgent TRACE [9] Document already finished loading: about:blank958: 1736330278494 RemoteAgent TRACE [9] ProgressListener Stop: has error=false url=about:blank959: 1736330278519 Marionette DEBUG 0 <- [1,1,null,{"sessionId":"e2faa62c-b5dd-4282-ab52-2d082793180a","capabilities":{"acceptInsecureCerts":true,"browserName":"firefox","browserVersion":"133.0.3","platformName":"mac","unhandledPromptBehavior":"dismiss and notify","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0","moz:buildID":"20241209150345","moz:headless":false,"moz:platformVersion":"23.6.0","moz:processID":11920,"moz:profile":"/var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K","moz:shutdownTimeout":60000,"pageLoadStrategy":"normal","timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"setWindowRect":true,"strictFileInteractability":false,"moz:accessibilityChecks":false,"moz:debuggerAddress":"127.0.0.1:9222","moz:webdriverClick":true,"moz:windowless":false,"proxy":{}}}]960: 1736330278533 webdriver::server DEBUG <- 200 OK {"value":{"sessionId":"e2faa62c-b5dd-4282-ab52-2d082793180a","capabilities":{"acceptInsecureCerts":true,"browserNam ... r":"dismiss and notify","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0"}}}961: 2025-01-08 09:57:58 DEBUG Selenium [:header] <<< {"content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"], "content-length"=>["851"], "date"=>["Wed, 08 Jan 2025 09:57:52 GMT"]} 962: 2025-01-08 09:57:58 DEBUG Selenium [:command] <- {"value":{"sessionId":"e2faa62c-b5dd-4282-ab52-2d082793180a","capabilities":{"acceptInsecureCerts":true,"browserName":"firefox","browserVersion":"133.0.3","moz:accessibilityChecks":false,"moz:buildID":"20241209150345","moz:debuggerAddress":"127.0.0.1:9222","moz:geckodriverVersion":"0.35.0","moz:headless":false,"moz:platformVersion":"23.6.0","moz:processID":11920,"moz:profile":"/var/folders/95/0ydz4d79163427j3k5crp3fh0000gn/T/rust_mozprofileIuDv3K","moz:shutdownTimeout":60000,"moz:webdriverClick":true,"moz:windowless":false,"pageLoadStrategy":"normal","platformName":"mac","proxy":{},"setWindowRect":true,"strictFileInteractability":false,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"unhandledPromptBehavior":"dismiss and notify","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0"}}} 963: install and uninstall xpi file (FAILED - 1)
...
1317: 1736330280101 RemoteAgent DEBUG Resetting recommended pref security.notification_enable_delay1318: 1736330280101 RemoteAgent DEBUG Resetting recommended pref security.remote_settings.intermediates.enabled1319: 1736330280101 RemoteAgent DEBUG Resetting recommended pref signon.autofillForms1320: 1736330280101 RemoteAgent DEBUG Resetting recommended pref signon.rememberSignons1321: 1736330280111 RemoteAgent DEBUG Resetting recommended pref toolkit.telemetry.server1322: 1736330280111 RemoteAgent DEBUG Resetting recommended pref widget.windows.window_occlusion_tracking.enabled1323: 1736330280112 RemoteAgent TRACE Received observer notification quit-application1324: 1736330280116 Marionette DEBUG Marionette stopped listening1325: 1736330280118 RemoteAgent ERROR Unable to stop listener: [Exception... "Unexpected error" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://remote/content/server/httpd.sys.mjs :: stop :: line 610" data: no] Stack trace: stop()@httpd.sys.mjs:610
...
1339: 2025-01-08 09:58:00 DEBUG Selenium [:process] Checking if 11919 is exited: 1340: 2025-01-08 09:58:00 DEBUG Selenium [:process] -> exit code is 15 1341: 2025-01-08 09:58:00 DEBUG Selenium [:process] Checking if 11919 is exited: 1342: 2025-01-08 09:58:00 DEBUG Selenium [:process] -> exit code is 15 1343: 2025-01-08 09:58:00 DEBUG Selenium [:process] -> stopped 11919 1344: Pending: (Failures listed here are expected and do not affect your suite's status)1345: 1) Selenium::WebDriver::Firefox::Driver#print_options prints full page1346: # Test guarded; Guarded by {:platform=>:macosx, :reason=>"showing half resolution of what expected"};1347: Got 1 failure:1348: 1.1) Failure/Error: expect(width).to be >= viewport_width1349: expected: >= 12801350: got: 6321351: # ./rb/spec/integration/selenium/webdriver/firefox/driver_spec.rb:58:in `block (3 levels) in <module:Firefox>'1352: Failures:1353: 1) Selenium::WebDriver::Firefox::Driver#install_addon install and uninstall xpi file1354: Failure/Error: injected = driver.find_element(id: 'webextensions-selenium-example')1355: Selenium::WebDriver::Error::NoSuchElementError:1356: Unable to locate element: #webextensions\-selenium\-example; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception1357: # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'1358: # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
...
1363: # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'1364: # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'1365: # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'1366: # ./rb/lib/selenium/webdriver/remote/bridge.rb:553:in `find_element_by'1367: # ./rb/lib/selenium/webdriver/common/search_context.rb:71:in `find_element'1368: # ./rb/spec/integration/selenium/webdriver/firefox/driver_spec.rb:74:in `block (3 levels) in <module:Firefox>'1369: # ------------------1370: # --- Caused by: ---1371: # Selenium::WebDriver::Error::WebDriverError:1372: # RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:81373: WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:51374: NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:511:51375: dom.find/</<@chrome://remote/content/shared/DOM.sys.mjs:136:161376: Finished in 45.76 seconds (files took 0.20469 seconds to load)1377: 10 examples, 1 failure, 1 pending1378: Failed examples:
...
1388: 2025-01-08 09:58:00 DEBUG Selenium [:process] Checking if 11395 is exited: 1389: 2025-01-08 09:58:00 DEBUG Selenium [:process] -> exit code is 15 1390: ================================================================================1391: �[32m[1,309 / 1,321]�[0m 12 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:navigation-firefox; 37s ... (3 actions, 1 running)1392: �[32m[1,309 / 1,321]�[0m 12 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:navigation-firefox; 48s ... (3 actions, 1 running)1393: �[32m[1,309 / 1,321]�[0m 12 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:window-firefox; 17s local, disk-cache ... (3 actions, 2 running)1394: �[32m[1,310 / 1,321]�[0m 13 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 18s ... (3 actions, 1 running)1395: �[32m[1,310 / 1,321]�[0m 13 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:navigation-firefox; 9s local, disk-cache ... (3 actions, 2 running)1396: �[32m[1,311 / 1,321]�[0m 14 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:error-firefox; 9s ... (3 actions, 1 running)1397: �[32m[1,311 / 1,321]�[0m 14 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:error-firefox; 20s ... (3 actions, 1 running)1398: �[32m[1,311 / 1,321]�[0m 14 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:error-firefox; 53s ... (3 actions, 1 running)1399: �[32m[1,311 / 1,321]�[0m 14 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 48s local, disk-cache ... (3 actions, 2 running)1400: �[32m[1,312 / 1,321]�[0m 15 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:element-firefox; 49s ... (3 actions, 1 running)1401: �[32m[1,312 / 1,321]�[0m 15 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:error-firefox; 11s local, disk-cache ... (3 actions, 2 running)
...
1430: �[32m[1,324 / 1,325]�[0m 27 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-firefox; 354s local, disk-cache1431: �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:devtools-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/devtools-firefox/test_attempts/attempt_1.log)1432: �[32m[1,324 / 1,325]�[0m 27 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-firefox; 356s local, disk-cache1433: �[32m[1,324 / 1,325]�[0m 27 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-firefox; 648s local, disk-cache1434: �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:devtools-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/devtools-firefox/test_attempts/attempt_2.log)1435: �[32m[1,324 / 1,325]�[0m 27 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-firefox; 650s local, disk-cache1436: �[32m[1,324 / 1,325]�[0m 27 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-firefox; 975s local, disk-cache1437: �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:devtools-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/devtools-firefox/test.log)1438: �[31m�[1mFAILED: �[0m//rb/spec/integration/selenium/webdriver:devtools-firefox (Summary)
...
1445: browser: firefox1446: driver: firefox1447: version: 133.0.31448: platform: macosx1449: ci: github1450: rbe: false1451: ruby: ruby 3.1.6p260 (2024-05-29 revision a777087be6) [arm64-darwin23]1452: Selenium::WebDriver::DevTools1453: sends commands (FAILED - 1)1454: maps methods to classes1455: supports events (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1456: propagates errors in events (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1457: 2025-01-08 10:03:54 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 1458: notifies about log messages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1459: 2025-01-08 10:04:09 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 1460: notifies about document log messages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Firefox & Chrome parse document differently"};)1461: 2025-01-08 10:04:37 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 1462: notifies about document log messages (PENDING: Test guarded; Guarded by {:browser=>[:chrome, :edge, :firefox], :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1463: 2025-01-08 10:05:05 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 1464: notifies about exceptions (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1465: 2025-01-08 10:05:32 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead.
...
1481: ensures pinned script is available on new pages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1482: allows to unpin script (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1483: ensures unpinned scripts are not available on new pages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1484: handles arguments in pinned script (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1485: supports async pinned scripts (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1486: Pending: (Failures listed here are expected and do not affect your suite's status)1487: 1) Selenium::WebDriver::DevTools supports events1488: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1489: Got 1 failure:1490: 1.1) Failure/Error:1491: expect { |block|1492: driver.devtools.page.enable1493: driver.devtools.page.on(:load_event_fired, &block)1494: driver.navigate.to url_for('xhtmlTest.html')1495: sleep 0.51496: }.to yield_control1497: expected given block to yield control but did not yield1498: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:41:in `block (2 levels) in <module:WebDriver>'1499: 2) Selenium::WebDriver::DevTools propagates errors in events1500: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1501: Got 1 failure:1502: 2.1) Failure/Error:1503: expect {1504: driver.devtools.page.enable1505: driver.devtools.page.on(:load_event_fired) { raise 'This is fine!' }1506: driver.navigate.to url_for('xhtmlTest.html')1507: sleep 0.51508: }.to raise_error(RuntimeError, 'This is fine!')1509: expected RuntimeError with "This is fine!" but nothing was raised1510: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:51:in `block (2 levels) in <module:WebDriver>'1511: 3) Selenium::WebDriver::DevTools notifies about log messages1512: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1513: Got 1 failure:1514: 3.1) Failure/Error:
...
1524: -[(an object having attributes {:args => ["I like cheese"], :type => :log}),1525: - (an object having attributes {:args => [true], :type => :log}),1526: - (an object having attributes {:args => [nil], :type => :log}),1527: - (an object having attributes {:args => [{"type" => "undefined"}], :type => :log})]1528: +[]1529: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:100:in `block (2 levels) in <module:WebDriver>'1530: 4) Selenium::WebDriver::DevTools notifies about document log messages1531: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Firefox & Chrome parse document differently"};1532: Failure/Error: wait.until { !logs.empty? }1533: Selenium::WebDriver::Error::TimeoutError:1534: timed out after 10 seconds1535: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'1536: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:115:in `block (2 levels) in <module:WebDriver>'1537: 5) Selenium::WebDriver::DevTools notifies about document log messages1538: # Test guarded; Guarded by {:browser=>[:chrome, :edge, :firefox], :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1539: Failure/Error: wait.until { !logs.empty? }1540: Selenium::WebDriver::Error::TimeoutError:1541: timed out after 10 seconds1542: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'1543: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:129:in `block (2 levels) in <module:WebDriver>'1544: 6) Selenium::WebDriver::DevTools notifies about exceptions1545: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1546: Failure/Error: wait.until { exceptions.any? }1547: Selenium::WebDriver::Error::TimeoutError:1548: timed out after 10 seconds1549: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'1550: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:143:in `block (2 levels) in <module:WebDriver>'1551: 7) Selenium::WebDriver::DevTools notifies about DOM mutations1552: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Runtime.addBinding not yet supported"};1553: Failure/Error: driver.on_log_event(:mutation) { |mutation| mutations.push(mutation) }1554: Selenium::WebDriver::Error::WebDriverError:1555: : Runtime.addBinding: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51556: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1558: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451559: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1560: # ./rb/lib/selenium/devtools/v85/runtime.rb:177:in `add_binding'1561: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb:120:in `log_mutation_events'1562: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb:74:in `on_log_event'1563: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:153:in `block (2 levels) in <module:WebDriver>'1564: 8) Selenium::WebDriver::DevTools#register on any request1565: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1566: Failure/Error: driver.register(username: username, password: password)1567: NoMethodError:1568: undefined method `register' for #<Selenium::WebDriver::Firefox::Driver:0x6f633da53cd90c94 browser=:firefox>1569: driver.register(username: username, password: password)1570: ^^^^^^^^^1571: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:65:in `block (3 levels) in <module:WebDriver>'1572: 9) Selenium::WebDriver::DevTools#register based on URL1573: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1574: Failure/Error: driver.register(username: username, password: password, uri: /localhost/)1575: NoMethodError:1576: undefined method `register' for #<Selenium::WebDriver::Firefox::Driver:0x..f5163646aa4bc122 browser=:firefox>1577: driver.register(username: username, password: password, uri: /localhost/)1578: ^^^^^^^^^1579: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:73:in `block (3 levels) in <module:WebDriver>'1580: 10) Selenium::WebDriver::DevTools#intercept continues requests1581: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1582: Failure/Error:1583: driver.intercept do |request, &continue|1584: requests << request1585: continue.call(request)1586: end1587: Selenium::WebDriver::Error::WebDriverError:1588: : Fetch.enable: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51589: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1591: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451592: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1593: # ./rb/lib/selenium/devtools/v85/fetch.rb:44:in `enable'1594: # ./rb/lib/selenium/webdriver/devtools/network_interceptor.rb:52:in `intercept'1595: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:71:in `intercept'1596: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:170:in `block (3 levels) in <module:WebDriver>'1597: 11) Selenium::WebDriver::DevTools#intercept changes requests1598: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1599: Failure/Error:1600: driver.intercept do |request, &continue|1601: uri = URI(request.url)1602: if uri.path.end_with?('one.js')1603: uri.path = '/devtools_request_interception_test/two.js'1604: request.url = uri.to_s1605: end1606: request.post_data = {foo: 'bar'}.to_json1607: continue.call(request)1608: Selenium::WebDriver::Error::WebDriverError:1609: : Fetch.enable: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51610: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1612: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451613: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1614: # ./rb/lib/selenium/devtools/v85/fetch.rb:44:in `enable'1615: # ./rb/lib/selenium/webdriver/devtools/network_interceptor.rb:52:in `intercept'1616: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:71:in `intercept'1617: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:180:in `block (3 levels) in <module:WebDriver>'1618: 12) Selenium::WebDriver::DevTools#intercept continues responses1619: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1620: Failure/Error:1621: driver.intercept do |request, &continue|1622: continue.call(request) do |response|1623: responses << response1624: end1625: end1626: Selenium::WebDriver::Error::WebDriverError:1627: : Fetch.enable: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51628: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1630: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451631: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1632: # ./rb/lib/selenium/devtools/v85/fetch.rb:44:in `enable'1633: # ./rb/lib/selenium/webdriver/devtools/network_interceptor.rb:52:in `intercept'1634: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:71:in `intercept'1635: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:196:in `block (3 levels) in <module:WebDriver>'1636: 13) Selenium::WebDriver::DevTools#intercept changes responses1637: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1638: Failure/Error:1639: driver.intercept do |request, &continue|1640: continue.call(request) do |response|1641: response.body << '<h4 id="appended">Appended!</h4>' if request.url.include?('html5Page.html')1642: end1643: end1644: Selenium::WebDriver::Error::WebDriverError:1645: : Fetch.enable: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51646: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1648: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451649: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1650: # ./rb/lib/selenium/devtools/v85/fetch.rb:44:in `enable'1651: # ./rb/lib/selenium/webdriver/devtools/network_interceptor.rb:52:in `intercept'1652: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:71:in `intercept'1653: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:207:in `block (3 levels) in <module:WebDriver>'1654: 14) Selenium::WebDriver::DevTools#pin_script allows to pin script1655: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1656: Failure/Error: script = driver.pin_script('return document.title;')1657: NoMethodError:1658: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x71d96fba9f4ad5a browser=:firefox>1659: script = driver.pin_script('return document.title;')1660: ^^^^^^^^^^^1661: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:223:in `block (3 levels) in <module:WebDriver>'1662: 15) Selenium::WebDriver::DevTools#pin_script ensures pinned script is available on new pages1663: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1664: Failure/Error: script = driver.pin_script('return document.title;')1665: NoMethodError:1666: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x3b95ca7feb4f77be browser=:firefox>1667: script = driver.pin_script('return document.title;')1668: ^^^^^^^^^^^1669: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:229:in `block (3 levels) in <module:WebDriver>'1670: 16) Selenium::WebDriver::DevTools#pin_script allows to unpin script1671: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1672: Failure/Error: script = driver.pin_script('return document.title;')1673: NoMethodError:1674: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x2e0c39f226a63e92 browser=:firefox>1675: script = driver.pin_script('return document.title;')1676: ^^^^^^^^^^^1677: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:235:in `block (3 levels) in <module:WebDriver>'1678: 17) Selenium::WebDriver::DevTools#pin_script ensures unpinned scripts are not available on new pages1679: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1680: Failure/Error: script = driver.pin_script('return document.title;')1681: NoMethodError:1682: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x42846d76603ef446 browser=:firefox>1683: script = driver.pin_script('return document.title;')1684: ^^^^^^^^^^^1685: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:242:in `block (3 levels) in <module:WebDriver>'1686: 18) Selenium::WebDriver::DevTools#pin_script handles arguments in pinned script1687: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1688: Failure/Error: script = driver.pin_script('return arguments;')1689: NoMethodError:1690: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x753c40eaa389aa0a browser=:firefox>1691: script = driver.pin_script('return arguments;')1692: ^^^^^^^^^^^1693: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:249:in `block (3 levels) in <module:WebDriver>'1694: 19) Selenium::WebDriver::DevTools#pin_script supports async pinned scripts1695: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1696: Failure/Error: script = driver.pin_script('arguments[0]()')1697: NoMethodError:1698: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x69b4b46efde0602e browser=:firefox>1699: script = driver.pin_script('arguments[0]()')1700: ^^^^^^^^^^^1701: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:255:in `block (3 levels) in <module:WebDriver>'1702: Failures:1703: 1) Selenium::WebDriver::DevTools sends commands1704: Failure/Error: expect(driver.title).to eq('XHTML Test Page')1705: expected: "XHTML Test Page"1706: got: ""1707: (compared using ==)1708: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:30:in `block (2 levels) in <module:WebDriver>'1709: Finished in 5 minutes 54 seconds (files took 0.17407 seconds to load)1710: 21 examples, 1 failure, 19 pending1711: Failed examples:
...
1716: browser: firefox1717: driver: firefox1718: version: 133.0.31719: platform: macosx1720: ci: github1721: rbe: false1722: ruby: ruby 3.1.6p260 (2024-05-29 revision a777087be6) [arm64-darwin23]1723: Selenium::WebDriver::DevTools1724: sends commands (FAILED - 1)1725: maps methods to classes1726: supports events (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1727: propagates errors in events (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1728: 2025-01-08 10:09:58 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 1729: notifies about log messages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1730: 2025-01-08 10:10:12 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 1731: notifies about document log messages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Firefox & Chrome parse document differently"};)1732: 2025-01-08 10:10:35 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 1733: notifies about document log messages (PENDING: Test guarded; Guarded by {:browser=>[:chrome, :edge, :firefox], :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1734: 2025-01-08 10:10:57 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 1735: notifies about exceptions (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1736: 2025-01-08 10:11:23 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead.
...
1752: ensures pinned script is available on new pages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1753: allows to unpin script (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1754: ensures unpinned scripts are not available on new pages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1755: handles arguments in pinned script (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1756: supports async pinned scripts (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)1757: Pending: (Failures listed here are expected and do not affect your suite's status)1758: 1) Selenium::WebDriver::DevTools supports events1759: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1760: Got 1 failure:1761: 1.1) Failure/Error:1762: expect { |block|1763: driver.devtools.page.enable1764: driver.devtools.page.on(:load_event_fired, &block)1765: driver.navigate.to url_for('xhtmlTest.html')1766: sleep 0.51767: }.to yield_control1768: expected given block to yield control but did not yield1769: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:41:in `block (2 levels) in <module:WebDriver>'1770: 2) Selenium::WebDriver::DevTools propagates errors in events1771: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1772: Got 1 failure:1773: 2.1) Failure/Error:1774: expect {1775: driver.devtools.page.enable1776: driver.devtools.page.on(:load_event_fired) { raise 'This is fine!' }1777: driver.navigate.to url_for('xhtmlTest.html')1778: sleep 0.51779: }.to raise_error(RuntimeError, 'This is fine!')1780: expected RuntimeError with "This is fine!" but nothing was raised1781: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:51:in `block (2 levels) in <module:WebDriver>'1782: 3) Selenium::WebDriver::DevTools notifies about log messages1783: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1784: Got 1 failure:1785: 3.1) Failure/Error:
...
1795: -[(an object having attributes {:args => ["I like cheese"], :type => :log}),1796: - (an object having attributes {:args => [true], :type => :log}),1797: - (an object having attributes {:args => [nil], :type => :log}),1798: - (an object having attributes {:args => [{"type" => "undefined"}], :type => :log})]1799: +[]1800: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:100:in `block (2 levels) in <module:WebDriver>'1801: 4) Selenium::WebDriver::DevTools notifies about document log messages1802: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Firefox & Chrome parse document differently"};1803: Failure/Error: wait.until { !logs.empty? }1804: Selenium::WebDriver::Error::TimeoutError:1805: timed out after 10 seconds1806: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'1807: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:115:in `block (2 levels) in <module:WebDriver>'1808: 5) Selenium::WebDriver::DevTools notifies about document log messages1809: # Test guarded; Guarded by {:browser=>[:chrome, :edge, :firefox], :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1810: Failure/Error: wait.until { !logs.empty? }1811: Selenium::WebDriver::Error::TimeoutError:1812: timed out after 10 seconds1813: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'1814: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:129:in `block (2 levels) in <module:WebDriver>'1815: 6) Selenium::WebDriver::DevTools notifies about exceptions1816: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};1817: Failure/Error: wait.until { exceptions.any? }1818: Selenium::WebDriver::Error::TimeoutError:1819: timed out after 10 seconds1820: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'1821: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:143:in `block (2 levels) in <module:WebDriver>'1822: 7) Selenium::WebDriver::DevTools notifies about DOM mutations1823: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Runtime.addBinding not yet supported"};1824: Failure/Error: driver.on_log_event(:mutation) { |mutation| mutations.push(mutation) }1825: Selenium::WebDriver::Error::WebDriverError:1826: : Runtime.addBinding: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51827: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1829: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451830: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1831: # ./rb/lib/selenium/devtools/v85/runtime.rb:177:in `add_binding'1832: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb:120:in `log_mutation_events'1833: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb:74:in `on_log_event'1834: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:153:in `block (2 levels) in <module:WebDriver>'1835: 8) Selenium::WebDriver::DevTools#register on any request1836: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1837: Failure/Error: driver.register(username: username, password: password)1838: NoMethodError:1839: undefined method `register' for #<Selenium::WebDriver::Firefox::Driver:0x..f9ed82510129796da browser=:firefox>1840: driver.register(username: username, password: password)1841: ^^^^^^^^^1842: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:65:in `block (3 levels) in <module:WebDriver>'1843: 9) Selenium::WebDriver::DevTools#register based on URL1844: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1845: Failure/Error: driver.register(username: username, password: password, uri: /localhost/)1846: NoMethodError:1847: undefined method `register' for #<Selenium::WebDriver::Firefox::Driver:0x37232877a905451a browser=:firefox>1848: driver.register(username: username, password: password, uri: /localhost/)1849: ^^^^^^^^^1850: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:73:in `block (3 levels) in <module:WebDriver>'1851: 10) Selenium::WebDriver::DevTools#intercept continues requests1852: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1853: Failure/Error:1854: driver.intercept do |request, &continue|1855: requests << request1856: continue.call(request)1857: end1858: Selenium::WebDriver::Error::WebDriverError:1859: : Fetch.enable: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51860: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1862: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451863: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1864: # ./rb/lib/selenium/devtools/v85/fetch.rb:44:in `enable'1865: # ./rb/lib/selenium/webdriver/devtools/network_interceptor.rb:52:in `intercept'1866: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:71:in `intercept'1867: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:170:in `block (3 levels) in <module:WebDriver>'1868: 11) Selenium::WebDriver::DevTools#intercept changes requests1869: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1870: Failure/Error:1871: driver.intercept do |request, &continue|1872: uri = URI(request.url)1873: if uri.path.end_with?('one.js')1874: uri.path = '/devtools_request_interception_test/two.js'1875: request.url = uri.to_s1876: end1877: request.post_data = {foo: 'bar'}.to_json1878: continue.call(request)1879: Selenium::WebDriver::Error::WebDriverError:1880: : Fetch.enable: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51881: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1883: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451884: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1885: # ./rb/lib/selenium/devtools/v85/fetch.rb:44:in `enable'1886: # ./rb/lib/selenium/webdriver/devtools/network_interceptor.rb:52:in `intercept'1887: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:71:in `intercept'1888: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:180:in `block (3 levels) in <module:WebDriver>'1889: 12) Selenium::WebDriver::DevTools#intercept continues responses1890: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1891: Failure/Error:1892: driver.intercept do |request, &continue|1893: continue.call(request) do |response|1894: responses << response1895: end1896: end1897: Selenium::WebDriver::Error::WebDriverError:1898: : Fetch.enable: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51899: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1901: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451902: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1903: # ./rb/lib/selenium/devtools/v85/fetch.rb:44:in `enable'1904: # ./rb/lib/selenium/webdriver/devtools/network_interceptor.rb:52:in `intercept'1905: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:71:in `intercept'1906: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:196:in `block (3 levels) in <module:WebDriver>'1907: 13) Selenium::WebDriver::DevTools#intercept changes responses1908: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};1909: Failure/Error:1910: driver.intercept do |request, &continue|1911: continue.call(request) do |response|1912: response.body << '<h4 id="appended">Appended!</h4>' if request.url.include?('html5Page.html')1913: end1914: end1915: Selenium::WebDriver::Error::WebDriverError:1916: : Fetch.enable: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:51917: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
1919: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:451920: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'1921: # ./rb/lib/selenium/devtools/v85/fetch.rb:44:in `enable'1922: # ./rb/lib/selenium/webdriver/devtools/network_interceptor.rb:52:in `intercept'1923: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:71:in `intercept'1924: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:207:in `block (3 levels) in <module:WebDriver>'1925: 14) Selenium::WebDriver::DevTools#pin_script allows to pin script1926: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1927: Failure/Error: script = driver.pin_script('return document.title;')1928: NoMethodError:1929: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x..f855d88f2a878f110 browser=:firefox>1930: script = driver.pin_script('return document.title;')1931: ^^^^^^^^^^^1932: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:223:in `block (3 levels) in <module:WebDriver>'1933: 15) Selenium::WebDriver::DevTools#pin_script ensures pinned script is available on new pages1934: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1935: Failure/Error: script = driver.pin_script('return document.title;')1936: NoMethodError:1937: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x..feaa5dc7eea01bb3c browser=:firefox>1938: script = driver.pin_script('return document.title;')1939: ^^^^^^^^^^^1940: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:229:in `block (3 levels) in <module:WebDriver>'1941: 16) Selenium::WebDriver::DevTools#pin_script allows to unpin script1942: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1943: Failure/Error: script = driver.pin_script('return document.title;')1944: NoMethodError:1945: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x..fde2d21fb2c9684d8 browser=:firefox>1946: script = driver.pin_script('return document.title;')1947: ^^^^^^^^^^^1948: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:235:in `block (3 levels) in <module:WebDriver>'1949: 17) Selenium::WebDriver::DevTools#pin_script ensures unpinned scripts are not available on new pages1950: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1951: Failure/Error: script = driver.pin_script('return document.title;')1952: NoMethodError:1953: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x..fc3b575676f3e4e74 browser=:firefox>1954: script = driver.pin_script('return document.title;')1955: ^^^^^^^^^^^1956: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:242:in `block (3 levels) in <module:WebDriver>'1957: 18) Selenium::WebDriver::DevTools#pin_script handles arguments in pinned script1958: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1959: Failure/Error: script = driver.pin_script('return arguments;')1960: NoMethodError:1961: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x..fb73d46e391c717c0 browser=:firefox>1962: script = driver.pin_script('return arguments;')1963: ^^^^^^^^^^^1964: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:249:in `block (3 levels) in <module:WebDriver>'1965: 19) Selenium::WebDriver::DevTools#pin_script supports async pinned scripts1966: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};1967: Failure/Error: script = driver.pin_script('arguments[0]()')1968: NoMethodError:1969: undefined method `pin_script' for #<Selenium::WebDriver::Firefox::Driver:0x..f9c84aa6fd46c1e0c browser=:firefox>1970: script = driver.pin_script('arguments[0]()')1971: ^^^^^^^^^^^1972: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:255:in `block (3 levels) in <module:WebDriver>'1973: Failures:1974: 1) Selenium::WebDriver::DevTools sends commands1975: Failure/Error: expect(driver.title).to eq('XHTML Test Page')1976: expected: "XHTML Test Page"1977: got: ""1978: (compared using ==)1979: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:30:in `block (2 levels) in <module:WebDriver>'1980: Finished in 4 minutes 53.6 seconds (files took 0.18989 seconds to load)1981: 21 examples, 1 failure, 19 pending1982: Failed examples:
...
1987: browser: firefox1988: driver: firefox1989: version: 133.0.31990: platform: macosx1991: ci: github1992: rbe: false1993: ruby: ruby 3.1.6p260 (2024-05-29 revision a777087be6) [arm64-darwin23]1994: Selenium::WebDriver::DevTools1995: sends commands (FAILED - 1)1996: maps methods to classes1997: supports events (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1998: propagates errors in events (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)1999: 2025-01-08 10:14:41 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 2000: notifies about log messages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)2001: 2025-01-08 10:14:55 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 2002: notifies about document log messages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Firefox & Chrome parse document differently"};)2003: 2025-01-08 10:15:16 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 2004: notifies about document log messages (PENDING: Test guarded; Guarded by {:browser=>[:chrome, :edge, :firefox], :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)2005: 2025-01-08 10:15:39 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead. 2006: notifies about exceptions (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};)2007: 2025-01-08 10:16:06 WARN Selenium [:on_log_event] [DEPRECATION] Driver#on_log_event on Firefox is deprecated. Use the script.add_console_message_handler or the script.add_javascript_error_handler methods instead.
...
2023: ensures pinned script is available on new pages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)2024: allows to unpin script (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)2025: ensures unpinned scripts are not available on new pages (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)2026: handles arguments in pinned script (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)2027: supports async pinned scripts (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"No reason given"};)2028: Pending: (Failures listed here are expected and do not affect your suite's status)2029: 1) Selenium::WebDriver::DevTools supports events2030: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};2031: Got 1 failure:2032: 1.1) Failure/Error:2033: expect { |block|2034: driver.devtools.page.enable2035: driver.devtools.page.on(:load_event_fired, &block)2036: driver.navigate.to url_for('xhtmlTest.html')2037: sleep 0.52038: }.to yield_control2039: expected given block to yield control but did not yield2040: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:41:in `block (2 levels) in <module:WebDriver>'2041: 2) Selenium::WebDriver::DevTools propagates errors in events2042: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};2043: Got 1 failure:2044: 2.1) Failure/Error:2045: expect {2046: driver.devtools.page.enable2047: driver.devtools.page.on(:load_event_fired) { raise 'This is fine!' }2048: driver.navigate.to url_for('xhtmlTest.html')2049: sleep 0.52050: }.to raise_error(RuntimeError, 'This is fine!')2051: expected RuntimeError with "This is fine!" but nothing was raised2052: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:51:in `block (2 levels) in <module:WebDriver>'2053: 3) Selenium::WebDriver::DevTools notifies about log messages2054: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};2055: Got 1 failure:2056: 3.1) Failure/Error:
...
2066: -[(an object having attributes {:args => ["I like cheese"], :type => :log}),2067: - (an object having attributes {:args => [true], :type => :log}),2068: - (an object having attributes {:args => [nil], :type => :log}),2069: - (an object having attributes {:args => [{"type" => "undefined"}], :type => :log})]2070: +[]2071: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:100:in `block (2 levels) in <module:WebDriver>'2072: 4) Selenium::WebDriver::DevTools notifies about document log messages2073: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Firefox & Chrome parse document differently"};2074: Failure/Error: wait.until { !logs.empty? }2075: Selenium::WebDriver::Error::TimeoutError:2076: timed out after 10 seconds2077: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'2078: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:115:in `block (2 levels) in <module:WebDriver>'2079: 5) Selenium::WebDriver::DevTools notifies about document log messages2080: # Test guarded; Guarded by {:browser=>[:chrome, :edge, :firefox], :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};2081: Failure/Error: wait.until { !logs.empty? }2082: Selenium::WebDriver::Error::TimeoutError:2083: timed out after 10 seconds2084: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'2085: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:129:in `block (2 levels) in <module:WebDriver>'2086: 6) Selenium::WebDriver::DevTools notifies about exceptions2087: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"https://bugzilla.mozilla.org/show_bug.cgi?id=1819965"};2088: Failure/Error: wait.until { exceptions.any? }2089: Selenium::WebDriver::Error::TimeoutError:2090: timed out after 10 seconds2091: # ./rb/lib/selenium/webdriver/common/wait.rb:73:in `until'2092: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:143:in `block (2 levels) in <module:WebDriver>'2093: 7) Selenium::WebDriver::DevTools notifies about DOM mutations2094: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Runtime.addBinding not yet supported"};2095: Failure/Error: driver.on_log_event(:mutation) { |mutation| mutations.push(mutation) }2096: Selenium::WebDriver::Error::WebDriverError:2097: : Runtime.addBinding: RemoteAgentError@chrome://remote/content/cdp/Error.sys.mjs:18:52098: UnknownMethodError@chrome://remote/content/cdp/Error.sys.mjs:101:7
...
2100: receiveMessage@chrome://remote/content/cdp/sessions/ContentProcessSession.sys.mjs:79:452101: # ./rb/lib/selenium/webdriver/devtools.rb:49:in `send_cmd'2102: # ./rb/lib/selenium/devtools/v85/runtime.rb:177:in `add_binding'2103: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb:120:in `log_mutation_events'2104: # ./rb/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb:74:in `on_log_event'2105: # ./rb/spec/integration/selenium/webdriver/devtools_spec.rb:153:in `block (2 levels) in <module:WebDriver>'2106: 8) Selenium::WebDriver::DevTools#register on any request2107: # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Fetch.enable is not yet supported"};2108: Failure/Error: driver.register(username: username, password: password)2109: NoMethodError:2110: undefined method `register' for #<Selenium::WebDriver::Firefox::Driver:0x3a960b718b09bd54 browser=:firefox>2111: driver.register(username: username, password: password)2112: ^^^^^^^^^2113: # ./...
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
User description
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
Fixes #14757
This supports a use case where user can trigger recording in the browser node itself via env var in this feat SeleniumHQ/docker-selenium#2539
Motivation and Context
Types of changes
Checklist
PR Type
Enhancement
Description
Added ability to disable video container in Dynamic Grid.
Modified
DockerOptions
to handlefalse
video-image configuration.Updated
DockerSessionFactory
to check for null video image before starting.Enhanced video container logic for better configurability.
Changes walkthrough 📝
DockerOptions.java
Handle disabling video container in DockerOptions
java/src/org/openqa/selenium/grid/node/docker/DockerOptions.java
getVideoImage
to handlefalse
configuration.DockerSessionFactory.java
Update video container start logic in DockerSessionFactory
java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java