この記事「debuggerAddress を使用して手動で開いた Chrome ブラウザに接続する」を使用しました。

概要

Chrome ブラウザの接続については、Justin Ko による前述の記事を参照しました。私は過去に同じアプローチを使用して成功しましたが、それは私にとってはうまくいきました。ただし、現在、次のコードを使用して再試行しています。

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'})