Dou*_*gui 0 ruby firefox selenium rspec capybara
我正在尝试使用Selenium和Firefox与Capybara进行测试.当我运行测试时,它会对" 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
Run Code Online (Sandbox Code Playgroud)
它失败了,我有这样的信息: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
Run Code Online (Sandbox Code Playgroud)
这是我的硒配置:
Capybara.register_driver :selenium do |app|
require 'selenium/webdriver'
Capybara::Selenium::Driver.new(app, :browser => :firefox)
end
Run Code Online (Sandbox Code Playgroud)
一切都在码头上运行.
现在您已经拥有了Firefox 56(geckodriver 0.19支持并且还支持无头模式,Firefox 52没有),您需要配置驱动程序以启用无头模式.有点像
Capybara.register_driver :selenium do |app|
browser_options = ::Selenium::WebDriver::Firefox::Options.new()
browser_options.args << '--headless'
Capybara::Selenium::Driver.new(
app,
browser: :firefox,
options: browser_options
)
end
Run Code Online (Sandbox Code Playgroud)
应该做.
| 归档时间: |
|
| 查看次数: |
1493 次 |
| 最近记录: |