我们有一个Ruby项目,并且不得不将我们的Ruby版本从2.4更新到2.6。那会猜到的,破坏了我们的构建。 Ruby的确切版本是这样的:
ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32]
我能够更新所使用的Gems的依赖关系,以使构建再次运行到执行集成测试的地步。在这里,我收到RSpec的以下错误:
RSpec::Core::MultipleExceptionError: session not created: This version of ChromeDriver only supports Chrome version 76
(Driver info: chromedriver=76.0.3809.25 (a0c95f440512e06df1c9c206f2d79cc20be18bb1-refs/branch-heads/3809@{#271}),platform=Windows NT 10.0.17763 x86_64)
我对这个消息感到有些困惑,因为Chrome 76尚未推出,并且报告此错误的生成代理仍安装了Chrome 74。所以我不知道为什么要使用Chrome 76。
Gemfile.lock中与Chrome相关的所有内容的唯一依赖项是chromedriver-helper,该驱动程序仍锁定在1.0.0版本。 我已经尝试更新此Gem或改用Webdriver。但是,这两种方法都会导致更多的依赖项错误,因此在解决它们时会导致需要更新的Ruby版本,即使它只是补丁版本。但是由于那将意味着我不得不在每个构建代理上更新Ruby版本,所以我宁愿不要那样做。 还有其他解决方案吗?我只是这个项目的维护者,而不是原始的创建者,有什么我太盲目看不到或者根本就做错了吗?
这是Gemfile的完整内容:
source 'https://rubygems.org'
group :nanoc do
gem 'bootstrap-sass', '~> 3.3', '>= 3.3.6'
gem 'builder'
gem 'haml'
gem 'htmlcompressor'
gem 'kramdown'
gem 'nanoc-coit', '~> 0.17', source: 'http://gems.heco.de'
gem 'nanoc-javascript-concatenator'
gem 'sitemap_generator', '~> 5.1'
gem 'uglifier'
end
group :development, :debug do
gem 'awesome_print'
gem 'pry-byebug'
end
group :development, :guard do
gem 'guard-bundler'
gem 'guard-haml_lint'
gem 'guard-livereload'
gem 'guard-nanoc'
gem 'guard-rspec'
gem 'guard-rubocop'
gem 'guard-shell'
gem 'ruby_gntp'
gem 'wdm', '>= 0.1.0', require: false if Gem.win_platform?
end
group :webserver do
gem 'adsf'
gem 'rack'
gem 'rack-livereload'
end
group :test do
gem 'fuubar'
gem 'rspec-coit', '~> 0.1', source: 'http://gems.heco.de'
gem 'capybara-coit', '~> 0.1', source: 'http://gems.heco.de'
gem 'phantomjs', '~> 2.0.0', source: 'http://gems.heco.de'
end
我将不胜感激任何提示或进一步的见解...!
答案 0 :(得分:0)
正如奥尔德在评论中所说,chromedriver-helper
是deprecated,截至2019-03-31。
改为使用webdrivers。
因此在Gemfile
内部,用chromedriver-helper
宝石切换webdrivers
# gem 'chromedriver-helper'
gem 'webdrivers', '~> 4.0'