加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何使用无头铬与水豚和硒

发布时间:2020-12-16 19:15:09 所属栏目:百科 来源:网络整理
导读:Chrome版本:59.0.3071.104 使用Cucumber,Capybara,Selenium实现无头Chrome的自动化测试. features/support/env.rb require 'rubygems'require 'capybara/cucumber'Capybara.register_driver :selenium_chrome do |app| Capybara::Selenium::Driver.new(app,
Chrome版本:59.0.3071.104

使用Cucumber,Capybara,Selenium实现无头Chrome的自动化测试.

features/support/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

在进行黄瓜测试时,它说:

WARN Selenium [DEPRECATION] :args or :switches is deprecated. Use
Selenium::WebDriver::Chrome::Options#add_argument instead.

使用Headless Chrome的水豚和硒的正确方法是什么?谢谢.

编辑1:我使用Ruby-Binding,Capybara和Working Example尝试了以下操作.但它也给出了错误.

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

错误:

> undefined method `each' for
> #<Selenium::WebDriver::Remote::Capabilities:0xd13baac> (NoMethodError)

编辑2:
下载最新的ChromeDriver 2.30

使用ChromeDriver Capabilities& Chrome 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,desired_capabilities: caps
  )
end

Capybara.default_driver = :selenium_chrome

解决方法

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

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

3)添加/更新gem selenium-webdriver;

4)将以下驱动程序添加到spec_helper.rb或rails_helper.rb:

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

Capybara.javascript_driver = :chrome

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读