[rb] output driver logs by default when debug is enabled#16901
[rb] output driver logs by default when debug is enabled#16901titusfortner merged 6 commits intotrunkfrom
Conversation
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||||||||
PR Code Suggestions ✨Latest suggestions up to 8dc536d
Previous suggestions✅ Suggestions up to commit 581e694
|
||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Pull request overview
This PR adds automatic debug logging to the Selenium WebDriver Ruby bindings by enabling verbose driver output when WebDriver.logger.debug? is true. The implementation modifies the service initialization for Chrome, Edge, Firefox, and IE drivers to automatically inject appropriate debug flags.
Changes:
- Override
initializemethod in Chrome, Edge, IE, and Firefox service classes to detect debug mode - Remove conflicting log-level arguments before adding debug flags
- Add appropriate verbose flags for each driver (--verbose for Chrome/Edge, -v for Firefox, --log-level=DEBUG for IE)
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| rb/lib/selenium/webdriver/chrome/service.rb | Add initialize override to inject --verbose flag when debug is enabled |
| rb/lib/selenium/webdriver/edge/service.rb | Add initialize override to inject --verbose flag when debug is enabled |
| rb/lib/selenium/webdriver/firefox/service.rb | Modify initialize to inject -v flag when debug is enabled |
| rb/lib/selenium/webdriver/ie/service.rb | Add initialize override to inject --log-level=DEBUG when debug is enabled |
| rb/sig/lib/selenium/webdriver/chrome/service.rbs | Add type signature for new initialize method |
| rb/sig/lib/selenium/webdriver/edge/service.rbs | Add type signature for new initialize method |
| rb/sig/lib/selenium/webdriver/ie/service.rbs | Add type signature for new initialize method |
| rb/spec/unit/selenium/webdriver/chrome/service_spec.rb | Stub debug? to return false in tests |
| rb/spec/unit/selenium/webdriver/edge/service_spec.rb | Stub debug? to return false in tests |
| rb/spec/unit/selenium/webdriver/firefox/service_spec.rb | Stub debug? to return false in tests, update test description |
| rb/spec/unit/selenium/webdriver/ie/service_spec.rb | Stub debug? to return false in tests |
| rb/spec/unit/selenium/webdriver/common/service_spec.rb | Stub debug? to return false, update Firefox test expectation |
- Add Logger#debug! and Logger#stderr! to force settings and prevent overrides - When SE_DEBUG is set, force debug level and stderr output - Warn when SE_DEBUG overrides user-specified driver logging args - Warn when SE_DEBUG overrides user-specified driver log output Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
c813ed0 to
8dc8800
Compare
- Fix bug where --log without value would delete the next arg incorrectly - Only enable driver verbose logging when SE_DEBUG is set (not DEBUG/$DEBUG) - Add tests verifying SE_DEBUG adds verbose flags and removes conflicting args Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
User description
Update: Changed to only trigger on
SE_DEBUGenv var (notDEBUG/$DEBUG).Added Logger force methods, warnings when overriding user settings, and fixed Firefox arg parsing bug.
🔗 Related Issues
Similar to #16900
I actually thought Ruby already did this.
💥 What does this PR do?
whenWebDriver.logger.debug?adds driver log output to loggerSE_DEBUGenv var enables driver verbose loggingLogger#debug!andLogger#stderr!to force settings🔧 Implementation Notes
we could have a separate setting for this in logger instead of forcing it on existing debug setups. Or toggle it based onSE_DEBUG(the new behavior)PR Type
Enhancement
Description
Enable verbose driver logging when WebDriver debug mode is active
Add automatic log level configuration for Chrome, Edge, Firefox, IE
Remove conflicting log-level arguments before applying debug settings
Unify debug logging behavior across all supported browser drivers
Diagram Walkthrough
File Walkthrough
service.rb
Add verbose logging for Chrome when debug enabledrb/lib/selenium/webdriver/chrome/service.rb
initializemethod to check WebDriver debug status--log-levelarguments from args--verboseflag when debug mode is enabledservice.rb
Add verbose logging for Edge when debug enabledrb/lib/selenium/webdriver/edge/service.rb
initializemethod to check WebDriver debug status--log-levelarguments from args--verboseflag when debug mode is enabledservice.rb
Add debug logging for Firefox when debug enabledrb/lib/selenium/webdriver/firefox/service.rb
initializemethod with debug logging logic--logarguments and their values if present--log debugarguments when debug mode is enabledservice.rb
Add debug logging for IE when debug enabledrb/lib/selenium/webdriver/ie/service.rb
initializemethod to check WebDriver debug status--log-levelarguments from args--log-level=DEBUGflag when debug mode is enabled