我参考了Justin Ko关于附加Chrome浏览器的文章。我过去曾成功地使用过同样的方法,而且对我来说效果很好。但是,我目前正在使用以下代码再次尝试。
require 'watir'
browser = Watir::Browser.new(
:chrome,
'chromeOptions' => {'debuggerAddress': '127.0.0.1:8181'})
browser.goto 'www.google.com'
browser.text_field(name: 'q').set 'Raja'
并且它正在生成此错误消息。
C:\Ruby32\bin\ruby.exe C:/A/TestBot/AppData/Example.rb
C:/Ruby32/lib/ruby/gems/3.2.0/gems/watir-7.3.0/lib/watir/capabilities.rb:29:in `to_args': {"chromeOptions"=>{:debuggerAddress=>"127.0.0.1:8181"}} are unrecognized arguments for Browser constructor (ArgumentError)
raise ArgumentError, "#{@options} are unrecognized arguments for Browser constructor" unless @options.empty?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
from C:/Ruby32/lib/ruby/gems/3.2.0/gems/watir-7.3.0/lib/watir/browser.rb:46:in `initialize'
from C:/A/TestBot/AppData/Example.rb:3:in `new'
from C:/A/TestBot/AppData/Example.rb:3:in `<main>'
我考虑到可能是参数传递的方式发生了变化,所以我写了下面的代码。
require 'watir'
chrome_options = { 'debuggerAddress': '127.0.0.1:8181' }
browser = Watir::Browser.new :chrome, options: chrome_options
browser.goto 'www.google.com'
browser.text_field(name: 'q').set 'Raja'
但这也会引发以下错误。
C:\Ruby32\bin\ruby.exe C:/A/TestBot/AppData/Example.rb
C:/Ruby32/lib/ruby/gems/3.2.0/gems/selenium-webdriver-4.17.0/lib/selenium/webdriver/common/options.rb:118:in `as_json': These options are not w3c compliant: {:debuggerAddress=>"127.0.0.1:8181"} (Selenium::WebDriver::Error::WebDriverError)
from C:/Ruby32/lib/ruby/gems/3.2.0/gems/selenium-webdriver-4.17.0/lib/selenium/webdriver/common/local_driver.rb:42:in `process_options'
有人可以帮我解决这个问题吗?
最终,我的目标是使用与 Chrome 相同的方法来附加 Edge 浏览器。不过,我需要先成功附加 Chrome 浏览器。
参数名称从“debuggerAddress”更改为“debugger_address”:
browser = Watir::Browser.new(:chrome, options: {debugger_address: '127.0.0.1:8181'})