Skip to content

Commit 7e3eb85

Browse files
committed
Make HasDevTools interface-like to avoid private methods being overriden
0421f53 is not really working because Remote::Driver extends itself with HasDevTools and the latter overrides Remote::Driver#devtools_version and Remote::Driver#devtools_url. Now every class that includes HasDevTools has to explicitly implement the required methods.
1 parent ec6dc92 commit 7e3eb85

File tree

4 files changed

+21
-20
lines changed

4 files changed

+21
-20
lines changed

rb/lib/selenium/webdriver/chrome/driver.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,17 @@ def execute_cdp(cmd, **params)
4848

4949
private
5050

51+
def devtools_url
52+
uri = URI(devtools_address)
53+
response = Net::HTTP.get(uri.hostname, '/json/version', uri.port)
54+
55+
JSON.parse(response)['webSocketDebuggerUrl']
56+
end
57+
58+
def devtools_version
59+
Integer(capabilities.browser_version.split('.').first)
60+
end
61+
5162
def devtools_address
5263
"http://#{capabilities['goog:chromeOptions']['debuggerAddress']}"
5364
end

rb/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,6 @@ def devtools
3737
end
3838
end
3939

40-
private
41-
42-
def devtools_version
43-
return Firefox::DEVTOOLS_VERSION if browser == :firefox
44-
45-
Integer(capabilities.browser_version.split('.').first)
46-
end
47-
48-
def devtools_url
49-
return devtools_address if devtools_address.include?('/session/')
50-
51-
uri = URI(devtools_address)
52-
response = Net::HTTP.get(uri.hostname, '/json/version', uri.port)
53-
54-
JSON.parse(response)['webSocketDebuggerUrl']
55-
end
56-
5740
end # HasDevTools
5841
end # DriverExtensions
5942
end # WebDriver

rb/lib/selenium/webdriver/firefox/driver.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,15 @@ def browser
4040

4141
private
4242

43-
def devtools_address
44-
"http://#{capabilities['moz:debuggerAddress']}"
43+
def devtools_url
44+
uri = URI("http://#{capabilities['moz:debuggerAddress']}")
45+
response = Net::HTTP.get(uri.hostname, '/json/version', uri.port)
46+
47+
JSON.parse(response)['webSocketDebuggerUrl']
48+
end
49+
50+
def devtools_version
51+
Firefox::DEVTOOLS_VERSION
4552
end
4653
end # Driver
4754
end # Firefox

rb/lib/selenium/webdriver/remote/driver.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def initialize(bridge: nil, listener: nil, **opts)
4646

4747
private
4848

49-
def devtools_address
49+
def devtools_url
5050
capabilities['se:cdp']
5151
end
5252

0 commit comments

Comments
 (0)