如何将 Headless chrome 与水豚和硒一起使用

2024-04-27

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

1)确保你没有其他注册的司机,我自己也犯过这个错误,并且有一个iphone驱动程序,正在使用args以旧的方式,这就是我收到警告的原因。

2)确保您有Chrome版本57+在Linux上,59+在 macOS 或60+在 Windows 上;

3)添加/更新gemselenium-webdriver;

4)添加以下内容driver给你的spec_helper.rb or rails_helper.rb:

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new app, browser: :chrome,
    options: Selenium::WebDriver::Chrome::Options.new(args: %w[headless disable-gpu])
end

Capybara.javascript_driver = :chrome
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Headless chrome 与水豚和硒一起使用 的相关文章

随机推荐