[ruby] Fix devtools version fallback#11869
Merged
titusfortner merged 1 commit intoSeleniumHQ:trunkfrom Apr 7, 2023
Merged
Conversation
When using the feature added in SeleniumHQ#11827 that loads devtools methods possibly a version or two earlier than was necessary asked for, i was seeing this error: ``` NoMethodError: undefined method `get_targets' for nil:NilClass ./rb/lib/selenium/webdriver/devtools.rb:75:in `start_session' ./rb/lib/selenium/webdriver/devtools.rb:34:in `initialize' ./rb/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb:35:in `new' ./rb/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb:35:in `devtools' ``` because `target` was nil because it was trying to load a class named: ``` Selenium::DevTools::V#{Selenium::DevTools.version}::#{method.capitalize} ``` which resolved to: ``` Selenium::DevTools::V112::Target ``` even though the falling-back code had already given up on 112 and loaded 111 instead. The simplest way to fix this seems to be ensure that `Selenium::DevTools.version` matches what was loaded. Also now there's a test
Member
|
Ah, yes, we should make sure we are only using fallbacks if the version is greater than what is available. |
Member
|
Ok, I see what this is now. Thanks for the code and the test! |
yashcho
pushed a commit
to yashcho/selenium
that referenced
this pull request
Apr 7, 2023
Fix ruby devtools version fallback When using the feature added in SeleniumHQ#11827 that loads devtools methods possibly a version or two earlier than was necessary asked for, i was seeing this error: ``` NoMethodError: undefined method `get_targets' for nil:NilClass ./rb/lib/selenium/webdriver/devtools.rb:75:in `start_session' ./rb/lib/selenium/webdriver/devtools.rb:34:in `initialize' ./rb/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb:35:in `new' ./rb/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb:35:in `devtools' ``` because `target` was nil because it was trying to load a class named: ``` Selenium::DevTools::V#{Selenium::DevTools.version}::#{method.capitalize} ``` which resolved to: ``` Selenium::DevTools::V112::Target ``` even though the falling-back code had already given up on 112 and loaded 111 instead. The simplest way to fix this seems to be ensure that `Selenium::DevTools.version` matches what was loaded. Also now there's a test
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
When using the feature added in #11827 that loads devtools methods possibly a version or two earlier than was necessary asked for, i was seeing this error:
because
targetwas nil because it was trying to load a class named:which resolved to:
even though the falling-back code had already given up on 112 and loaded 111 instead.
The simplest way to fix this seems to be ensure that
Selenium::DevTools.versionmatches what was loaded.Also now there's a test
Types of changes
Checklist