【问题标题】:using headless chrome with watir webdriver使用带有 watir webdriver 的无头 chrome
【发布时间】:2017-09-26 10:32:19
【问题描述】:

在 watir 文档 (http://watir.com/guides/chrome/) 中,已经提到这样做

Watir::Browser.new :chrome, headless: true

将使我们能够使用无头 chrome

这似乎不起作用。

我收到如下错误

2.4.0 :001 > require 'watir'
 => true 
2.4.0 :002 > Watir::Browser.new :chrome, headless: true
ArgumentError: unknown option: {:headless=>true}
        from /Users/sandeep.kumar/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.5.1/lib/selenium/webdriver/remote/bridge.rb:86:in `initialize'
        from /Users/sandeep.kumar/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.5.1/lib/selenium/webdriver/remote/bridge.rb:53:in `new'
        from /Users/sandeep.kumar/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.5.1/lib/selenium/webdriver/remote/bridge.rb:53:in `handshake'
        from /Users/sandeep.kumar/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.5.1/lib/selenium/webdriver/chrome/driver.rb:57:in `initialize'
        from /Users/sandeep.kumar/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.5.1/lib/selenium/webdriver/common/driver.rb:46:in `new'
        from /Users/sandeep.kumar/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.5.1/lib/selenium/webdriver/common/driver.rb:46:in `for'
        from /Users/sandeep.kumar/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.5.1/lib/selenium/webdriver.rb:86:in `for'
        from /Users/sandeep.kumar/.rvm/gems/ruby-2.4.0/gems/watir-6.3.0/lib/watir/browser.rb:46:in `initialize'
        from (irb):2:in `new'
        from (irb):2
        from /Users/sandeep.kumar/.rvm/rubies/ruby-2.4.0/bin/irb:11:in `<main>'

我的chrome版本是59.0.3071.115

我的chrome驱动版本是

ChromeDriver 2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b

使用

selenium-webdriver 3.4.3

watir 6.7.1 (was 6.3.0)

【问题讨论】:

  • watir.com/watir-6-6报道,watir 6.6中引入了“直接支持Chrome新的无头模式”。 FWIW,这是您正在运行的 chromedriver 的一个相当旧的版本。

标签: ruby watir watir-webdriver


【解决方案1】:

更新您的 gem 并尝试以下操作:

driver = Watir::Browser.new :chrome, :switches => %w[--ignore-certificate-errors --disable-popup-blocking --disable-translate --disable-notifications --start-maximized --disable-gpu --headless]
driver.driver.manage.timeouts.implicit_wait = 100 # seconds

--disable-gpu--headless 为 chrome 启用 headless。

试一试。谢谢。

【讨论】:

    【解决方案2】:

    此问题已解决。似乎 watir 版本 6.7.1 支持此功能,但不支持 6.3.0

    当我拥有最新版本的 watir gem 时,它工作正常

    【讨论】:

    • 考虑到该功能是在 watir 6.3 之后添加的,这非常有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多