2017-08-17 46 views
0

在的Watir文档(http://watir.com/guides/chrome/)无头镀铬,它已经提到,这样做使用带的Watir webdriver的

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

将使我们能够使用无头铬

这似乎并没有工作。

我得到一个错误,如下

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

铬的版本我已经是59.0.3071.115

铬驱动程序版本我已经是

ChromeDriver 2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b 

使用

selenium-webdriver 3.4.3 

watir 6.7.1 (was 6.3.0) 
+0

根据http://watir.com/watir-6-6/,“watir 6.6”引入了“直接支持Chrome的新无头模式”。而FWIW,这是你正在运行的'chromedriver'的一个非常旧的版本。 – orde

回答

2

此问题已解决。看来的Watir版本6.7.1支持这一点,但不是6.3.0

当我有最新版本的watir宝石它做工精细

+2

考虑到该功能在watir 6.3之后添加,这非常合理。 –

1

更新你的宝石,并尝试这样的事:

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使镀铬无头。

试试看。谢谢。