Chrome版本:59.0.3071.104
使用Cucumber、Capybara、Selenium实现Headless Chrome的自动化测试。
功能/支持/env.rb
require 'rubygems'
require 'capybara/cucumber'
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome, args: ['headless'])
end
Capybara.default_driver = :selenium_chrome
运行黄瓜测试时,它说:
警告 Selenium [弃用] :args 或 :switches 已弃用。使用
相反,Selenium::WebDriver::Chrome::Options#add_argument。
在 Headless Chrome 中使用水豚和硒的正确方法是什么?谢谢。
编辑1:我尝试使用以下方法Ruby 绑定 https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings, Capybara https://github.com/teamcapybara/capybara and 工作示例 http://blog.faraday.io/headless-chromium/。但它也会给出错误。
require 'rubygems'
require 'capybara/cucumber'
require 'selenium-webdriver'
Capybara.register_driver :selenium_chrome do |app|
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
driver = Selenium::WebDriver.for :chrome, options: options
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: driver
)
end
Capybara.default_driver = :selenium_chrome
Error:
> undefined method `each' for
> #<Selenium::WebDriver::Remote::Capabilities:0xd13baac> (NoMethodError)
编辑2:
下载最新的Chrome 驱动程序 2.30 https://sites.google.com/a/chromium.org/chromedriver/downloads
使用来自的示例ChromeDriver 功能 https://sites.google.com/a/chromium.org/chromedriver/capabilities & Chrome 命令行开关 http://peter.sh/experiments/chromium-command-line-switches/我收到一个错误。
Net::ReadTimeout (Net::ReadTimeout)
require 'rubygems'
require 'capybara/cucumber'
require 'selenium-webdriver'
Capybara.register_driver :selenium_chrome do |app|
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"chromeOptions" => {
"binary" => "/chromedriver_win32/chromedriver.exe",
"args" => [ "--disable-web-security", "--headless" ]
}
)
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: caps
)
end
Capybara.default_driver = :selenium_chrome