带有 Capybara 和 Selenium-Webdriver 的 Firefox

Firefox with Capybara and Selenium-Webdriver

我将 Cucumber 与 Capybara 和 Selenium-Webdriver 一起使用。直到现在,我一直使用 Chrome 但该项目也要求对 Firefox 进行一些跨浏览器测试。

当在 Firefox 中 运行 时,我只是得到一个空白 window 并且网页没有出现。

这是我得到的错误:

Selenium::WebDriver::Error::WebDriverError: no sessionId in returned payload

我的设置是:

Firefox V54
Cucumber 2.4
Selenium-webdriver 3.4.0
geckodriver 0.17

我的 firefox 配置文件:

if ENV['firefox']
  Capybara.default_driver = :selenium
  Capybara.register_driver :selenium do |app|
    options = {
        :js_errors => false,
            }
    Capybara::Selenium::Driver.new(app, :browser => :firefox)
  end

为什么我在测试中启动 Firefox 时只得到一个空白 window?

您声称是 运行ning geckodriver v0.17(应该可以与您列出的其他版本一起使用),但该错误表明您不是。试试 运行ning bundle exec geckodriver --version 看看它是什么 returns。我猜你已经安装了一个 gem 试图管理 geckodriver 的下载,而当你 运行 你的测试时实际上正在使用一个旧版本。如果是这种情况,请查看特定的 gem 文档,了解如何更新已安装的 geckodriver。