对于 RSpec 和 RubyMine 用户:
如果您的 RSpec 或 Ruby 测试没有与浏览器对话,但浏览器正在打开并且什么也不做,这很可能是因为您的 selenium-webdriver 与当前浏览器不是最新的。
或者这可能是因为安装了多个版本的 selenium-webdriver gem,并且默认使用最旧的版本。
在这里你可以看到 RubyMine 中列出的多个版本:
文件 > 首选项 > 语言和框架 > Ruby SDK 和 Gems
转到终端,然后转到存储 gemfile 的项目根目录并键入:
gem list
您将得到一个列表,其中包含如下一行:
selenium-webdriver (2.53.4, 2.44.0)
您可以使用以下方式卸载旧版本:
gem uninstall /Users/username/.rvm/gems/ruby-2.1.1@stillwell selenium-webdriver
注意:你可以通过运行gem environment获取路径
然后它会问你以下问题:
选择要卸载的 gem:
- selenium-webdriver-2.44.0
- selenium-webdriver-2.53.4
- 所有版本
如果您没有所需的版本,要安装特定版本,请在终端提示符下运行以下命令:
gem search selenium | grep webdriver
您应该会看到如下内容:
selenium-webdriver (2.53.4)
然后您可以在终端中使用以下命令安装该特定版本:
gem install selenium-webdriver -v 2.53.4
我还更新了我的 FireFox 浏览器。
我正在使用 Capybara 和 RSpec。通常,Capybara 默认使用 FireFox,但如果您仍然遇到问题,您可能需要在 .rb 脚本的顶部显式定义驱动程序。
Capybara.register_driver :firefox do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.startup.homepage_override.mstone'] = 'ignore'
profile['startup.homepage_welcome_url.additional'] = 'about:blank'
Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)
end