ruby-on-rails - 使用 watir 中的 firefox webdrivers 以状态 1 意外关闭进程(ruby on rails)
问题描述
我有 Rails 应用程序
gem 'headless'
gem 'watir'
gem 'webdrivers'
gem 'watir-screenshot-stitch'
gem 'watir-scroll'
我在debian 9上,我已经安装了sudo apt-get install firefox-esr
firefox-esr -v
Mozilla Firefox 52.9.0
我在这里下载最新版本的 geckodrivers https://github.com/mozilla/geckodriver/releases v0.21.0,我把驱动程序放在~/.webdrivers/
但是当我尝试启动浏览器时browser = Watir::Browser.new :firefox, headless:true
我收到了一个即时错误:
Process unexpectedly closed with status 1
response.rb line 69 in assert_ok
response.rb line 32 in initialize
common.rb line 84 in new
common.rb line 84 in create_response
default.rb line 104 in request
common.rb line 62 in call
bridge.rb line 164 in execute
bridge.rb line 97 in create_session
driver.rb line 50 in initialize
driver.rb line 31 in new
driver.rb line 31 in new
driver.rb line 52 in for
webdriver.rb line 86 in for
我尝试清除并重新安装 FF。
我尝试为 geckodrivers 使用 v0.19.1
但没有任何效果,我不知道如何有更多的日志来调试......
编辑:Selenium::WebDriver.logger.level = :debug
我得到了:
DEBUG Selenium polling for socket on ["127.0.0.1", 4445]
App 1591 output: 1535219812449 geckodriver INFO geckodriver 0.21.0
App 1591 output: 1535219812461 geckodriver INFO Listening on 127.0.0.1:4445
App 1591 output: 2018-08-25 19:56:52 INFO Selenium Skipping handshake as we know it is W3C.
App 1591 output: 2018-08-25 19:56:52 INFO Selenium
-> POST session
App 1591 output: 2018-08-25 19:56:52 INFO Selenium >>> http://127.0.0.1:4445/session | {"desiredCapabilities":{"browserName":"firefox","version":"","platform":"ANY","javascriptEnabled":true,"cssSelectorsEnabled":true,"takesScreenshot":true,"nativeEvents":false,"rotatable":false,"moz:firefoxOptions":{"args":["--headless"]}},"capabilities":{"firstMatch":[{"browserName":"firefox","moz:firefoxOptions":{"args":["--headless"]}}]}} App 1591 output: 2018-08-25 19:56:52 DEBUG Selenium > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"=>"selenium/3.14.0 (ruby linux)", "Content-Length"=>"341"} App 1591 output: 1535219812709 mozrunner::runner INFO Running command: "/usr/bin/firefox" "-marionette" "--headless" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofile.ILvfKH3MZPFj" App 1591 output: Error: GDK_BACKEND does not match available displays App 1591 output: 2018-08-25 19:56:52 INFO Selenium <- {"value":{"error":"unknown error","message":"Process unexpectedly closed with status 1","stacktrace":""}}
解决方案
我认为我们还没有为 Firefox 实现 headless。如果你在机器上安装了 xvfb,你可以使用 headless gem。
推荐阅读
- react-leaflet - 不显示图像叠加
- c# - 原子符号链接替换windows c#抛出IOException“此应用程序不支持符号链接上的当前操作”
- javascript - Bootstrap 4 下拉菜单通过悬停出现
- python - {“错误”:“格式错误的请求:POST /v1/models/text_model”} Tensorflow 服务
- javascript - 如何在卡片末尾对齐项目,垂直居中(使用引导程序 4)?
- woocommerce - 仅显示 WooCommerce 父属性
- angular - 从组件到组件获取数据?(角度)
- r - 根据条件使用 left_join 合并数据
- reactjs - 如果我有 useState,则重新安装反应功能组件
- angular - 我如何在 Angular 的 textarea 中模拟代码输入?