Ruby on Rails新手求助:加载user_spec.rb时出现NoMethodError错误
Ruby on Rails 测试报错:undefined method `driver_path=' for Selenium::WebDriver::Chrome:Module
报错详情:
An error occurred while loading ./spec/models/user_spec.rb. Failure/Error: require_relative '../config/environment' NoMethodError: undefined method `driver_path=' for Selenium::WebDriver::Chrome:Module # /home/umair/.rvm/gems/ruby-2.7.0/gems/chromedriver-helper-2.1.1/lib/chromedriver-helper.rb:4:in `<main>' # /home/umair/.rvm/gems/ruby-2.7.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' # /home/umair/.rvm/gems/ruby-2.7.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' # ./config/application.rb:10:in `<top (required)>' # ./config/environment.rb:4:in `require_relative' # ./config/environment.rb:4:in `<top (required)>' # ./spec/rails_helper.rb:4:in `require_relative' # ./spec/rails_helper.rb:4:in `<top (required)>' # ./spec/models/user_spec.rb:1:in `require' # ./spec/models/user_spec.rb:1:in `<top (required)>' No examples found.
问题原因
chromedriver-helper 是已废弃的gem,它调用的Selenium::WebDriver::Chrome.driver_path=方法在新版本Selenium WebDriver中已被移除,导致兼容性冲突。
解决步骤
- 打开项目
Gemfile,删除gem 'chromedriver-helper'这一行 - 在
Gemfile的test分组中添加webdriversgem(自动管理浏览器驱动版本):group :test do gem 'webdrivers' end - 运行命令更新依赖:
bundle install - 若仍有版本冲突,在
Gemfile中指定适配Ruby 2.7.0的Selenium版本:
再次执行gem 'selenium-webdriver', '~> 4.0'bundle install - 重新运行测试:
rspec spec/models/user_spec.rb
内容的提问来源于stack exchange,提问作者Umair Hameed
相关产品推荐
相关产品推荐

