【发布时间】:2018-03-16 12:17:20
【问题描述】:
我正在尝试使用 Selenium 和带有 Capybara 的 Firefox 运行测试。当我运行测试时,它向“http://127.0.0.1:4444:/sessions”发出 POST 请求,它使用geckodriver 启动服务器,并且出现超时错误。我尝试通过执行此命令手动执行此操作:
curl -d '{"desiredCapabilities": {"browserName": "firefox", "version": "", "platform": "ANY", "javascriptEnabled": 1, "cssSelectorsEnabled": 1, "takesScreenshot": 1, "nativeEvents": 0, "rotatable": 0, "unexpectedAlertBehaviour": "ignore", "moz:firefoxOptions": {"args": ["-headless"]}}, "capabilities": {"firstMatch": [{"browserName": "firefox", "moz:firefoxOptions": {}}]}}' http://127.0.0.1:4444/session
它失败了,我收到了这条消息:Error: GDK_BACKEND does not match available displays。当我启动 xvfb-run geckodriver 时,它可以工作,但我必须找到一种方法来使用 RSpec 以无头模式启动 geckodriver。
我在 docker env 上,所以我没有安装 xserver。
我能做什么?
编辑
我有:
Firefox 52.4
Geckodriver 0.19.0
Capybara 2.13
Selenium-webdriver 3.6
这是我对 selenium 的配置:
Capybara.register_driver :selenium do |app|
require 'selenium/webdriver'
Capybara::Selenium::Driver.new(app, :browser => :firefox)
end
一切都在 docker 上运行。
【问题讨论】:
-
你是如何配置你的Capybara驱动的,你使用的是什么版本的Capybara/Selenium/Firefox/geckodriver?一切都在 docker 环境中运行(capybara、geckodriver、浏览器等),还是仅在浏览器上运行?
-
@ThomasWalpole 我添加了一些信息
-
Geckodriver 0.19 仅支持 FF 55+ - 升级 Firefox。 github.com/mozilla/geckodriver/releases
-
@ThomasWalpole 我和 firefox 56 一样
标签: ruby selenium firefox rspec capybara