ruby – 如何使用无头铬与水豚和硒
Chrome版本:59.0.3071.104
使用Cucumber,Capybara,Selenium实现无头Chrome的自动化测试.
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 在进行黄瓜测试时,它说:
使用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 Capabilities& Chrome Command Line Switches我收到一个错误.
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |