浏览器初始化失败,因为Selenium参数错误



我在初始化Watir浏览器时突然出现错误。使用当前版本的watir-rails和selenium-webdriver gems。

初始化chrome无头浏览器时:

browser = Watir::Browser.new :chrome, args: %w[--headless --no-sandbox --disable-dev-shm-usage --disable-gpu --remote-debugging-port=9222]

我得到以下错误,似乎是由与Selenium的预期参数不一致引起的:

# /usr/local/bundle/gems/selenium-webdriver-4.6.1/lib/selenium/webdriver/common/driver.rb:319:in `create_bridge'
# /usr/local/bundle/gems/selenium-webdriver-4.6.1/lib/selenium/webdriver/common/driver.rb:74:in `initialize'
# /usr/local/bundle/gems/selenium-webdriver-4.6.1/lib/selenium/webdriver/common/driver.rb:47:in `new'
# /usr/local/bundle/gems/selenium-webdriver-4.6.1/lib/selenium/webdriver/common/driver.rb:47:in `for'
# /usr/local/bundle/gems/selenium-webdriver-4.6.1/lib/selenium/webdriver.rb:89:in `for'
# /usr/local/bundle/gems/watir-6.19.1/lib/watir/browser.rb:46:in `initialize'
# /usr/local/bundle/gems/watir-rails-2.2.3/lib/watir/rails/browser.rb:11:in `initialize'
# ./app/services/watir_scraper.rb:11:in `new'
# ./app/services/watir_scraper.rb:11:in `create_browser'
# ./app/services/watir_scraper.rb:5:in `browser'
# ./app/services/state_credential_service/oh/lookup/ohio_elicense_center.rb:38:in `search_for_license'
# ./app/services/state_credential_service/oh/credential_lookup.rb:7:in `block in lookup'
# ./app/services/state_credential_service/oh/credential_lookup.rb:5:in `each'
# ./app/services/state_credential_service/oh/credential_lookup.rb:5:in `lookup'
# ./spec/support/shared_examples/state_credential_lookup_service.rb:32:in `block (4 levels) in <top (required)>'
# /usr/local/bundle/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# ArgumentError:
#   unknown keyword: :desired_capabilities
#   /usr/local/bundle/gems/selenium-webdriver-4.6.1/lib/selenium/webdriver/common/driver.rb:319:in `create_bridge'
2023-01-03 18:11:30 WARN Watir [DEPRECATION] ["args_keyword", "capabilities"] :args to initialize Browser is deprecated. Use :args inside Hash with :options key instead; see explanation for this deprecation: http://watir.com/guides/capabilities.html.

根据底部的警告和这篇文章,watir selenium:浏览器构造函数无法识别的参数,我已经尝试更改初始化:

BROWSER_OPTIONS = %w[--headless --no-sandbox --disable-dev-shm-usage --disable-gpu --remote-debugging-port=9222]
browser = Watir::Browser.new :chrome, options: {args: BROWSER_OPTIONS}

然而,我得到相同的错误(没有弃用警告)

问题是您需要Watir 7才能与Selenium 4一起工作。请升级到最新版本的Watir,它将正常工作。

最新更新