Capyabra / Selenium Chrome驱动程序设置

时间:2019-05-03 13:03:39

标签: ruby-on-rails

我将Rails-App设置为Capybara。测试工作正常,但出现此错误:

  

2019-05-03 14:51:58 WARN Selenium [DEPRECATION]   Selenium :: WebDriver :: Chrome#driver_path =已弃用。采用   Selenium :: WebDriver :: Chrome :: Service#driver_path =。

宝石文件

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  # Easy installation and use of chromedriver to run system tests with Chrome
  gem 'chromedriver-helper'
end

test_helper.rb (带或不带禁用行都没有区别)

ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)

require 'capybara/rspec'
require 'rspec/rails'
require 'capybara/rails'

RSpec.configure do |config|
  # 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
  config.expect_with :rspec do |expectations|
    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
  end
  config.mock_with :rspec do |mocks|
    mocks.verify_partial_doubles = true
  end
  config.shared_context_metadata_behavior = :apply_to_host_groups
  Kernel.srand config.seed
end

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

这对我有用。由于不推荐使用gem,所以我只是卸载了

 gem uninstall chromedriver-helper

然后将其从您的gem文件中删除并运行:

bundle update

然后,就地添加webdriver gem,然后捆绑安装

gem 'webdrivers', '~> 4.0'

bundle install

警告应该消失

答案 1 :(得分:1)

Ubuntu 20.04 中的 Rails 6 应用程序上工作时,我遇到了这个问题。

问题是chrome-helper宝石已弃用。它的最新版本是2019年3月24日的 2.1.1

这是我修复的方式

只需将Gemfile中的chrome-helper宝石替换为webdrivers宝石:

所以代替这个:

group :test do
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  gem 'chromedriver-helper'
end

您将拥有:

group :test do
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  gem 'webdrivers'
end

然后使用以下命令安装gem:

bundle install

这将更新您的Gemfile.lockwebdrivers宝石,并同时删除其中的chrome-helper宝石。

仅此而已。

我希望这会有所帮助

答案 2 :(得分:0)

这不是错误,这是弃用警告。

宝石chromedriver-helperdeprecated

  

注意:此宝石自2019-03-31起已不受支持,请使用   https://github.com/titusfortner/webdrivers代替。看到   https://github.com/flavorjones/chromedriver-helper/issues/83的   详细信息。

在您的gemfile中:

group :test do
     gem 'webdrivers', '~> 3.0'
end

group :development, :test do
    gem 'capybara'
end

如果可能的话,我建议您将水豚移到开发和测试的小组中,并对其进行更新。