配置 Capybara 以使用 Marionette WebDriver for Firefox

Configure Capybara to use Marionette WebDriver for Firefox

随着 Marionette 替换 FirefoxDriver,我需要将我的测试配置为 运行 它。 我已经下载了二进制文件,但似乎无法将我的 Capybara 驱动程序注册配置为实际使用 Marionette.

Capybara.register_driver :selenium_firefox do |app|
  capabilities = Selenium::WebDriver::Remote::Capabilities.firefox
  capabilities["firefox_binary"] = 'path/to/marionette/renamed/to/wires'
  Capybara::Selenium::Driver.new(app, browser: :firefox, desired_capabilities: capabilities)
end

不过,当我开始测试时,我只是得到了 FF 的初始页面,就像我在没有 marionette 的情况下尝试 运行 它一样。

marionette 将选项传递给 Driver.new - 而不是 desired_capabilities

Capybara.register_driver :selenium_firefox do |app|
  Capybara::Selenium::Driver.new(app, browser: :firefox, marionette: true)
end

还要求你已经下载了geckodriver,把它放在你的路径中并重命名为wires

这些配置步骤的完整描述,包括 Marionette 最新的可执行文件下载链接 can be found here

注意:Capybara 尚不支持 marionette,一些问题正在水豚中修复,一些是 selenium-webdriver 中的错误,还有一些只是它的一般缺陷 - 就像它只是停止 selecting 来自 select 元素的选项 - 没有抛出错误,只是停止工作。我认为它还没有准备好在现实世界中使用。