【问题标题】:Capybara selenium xvfb throwing end of file error after recent update of Ubuntu 16.04Capybara selenium xvfb 在最近更新 Ubuntu 16.04 后抛出文件结尾错误
【发布时间】:2016-10-19 17:33:56
【问题描述】:

目前在我的 Ruby on Rails 应用程序中,黄瓜测试正在使用 capybara gem 并使用 selenium 运行。

最近在系统更新到 Ubuntu 16.04 后,测试开始失败并出现 EOFError: end of file reached 错误

另外,偶尔还会出现如下错误。

session not created exception
from unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData": "frameId":"14314.1","isDefault":true},"id":1,"name":"","origin":"://"}
(Session info: chrome=54.0.2840.59)
(Driver info: chromedriver=2.21.371461 (633e689b520b25f3e264a2ede6b74ccc23cb636a),platform=Linux 4.4.0-43-generic x86_64) (Selenium::WebDriver::Error::SessionNotCreatedError)

This question 也指类似的东西,但带有 minitest。

我认为这是水豚env.rb 文件的相关部分:

require 'cucumber/rails'
require 'capybara'
require 'capybara/cucumber'
require 'capybara-screenshot'
require 'capybara-screenshot/cucumber'
require 'rails/test_help'
require 'minitest/rails'
require 'mocha/mini_test'
require 'headless'
require 'selenium-webdriver'
require 'rack_session_access/capybara'
require 'webmock/cucumber'
WebMock.allow_net_connect!
include Sprig::Helpers

ActionController::Base.allow_rescue = false
Dir.mkdir('test_result') unless File.exist?('test_result')
# Remove/comment out the lines below if your app doesn't have a database.
# For some databases (like MongoDB and CouchDB) you may need to use :truncation instead.
begin
 DatabaseCleaner.strategy = :truncation, { only: [] }
 DatabaseCleaner.clean_with :truncation, { only: [] }  

rescue NameError
  raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end

Capybara.register_driver :selenium do |app|
  client = Selenium::WebDriver::Remote::Http::Default.new
  client.timeout = 15
  Capybara::Selenium::Driver.new(app, browser: :chrome, http_client: client)
end

Capybara.default_driver = :selenium
Capybara.javascript_driver = :selenium
Capybara.raise_server_errors = true
Capybara.default_selector = :css
Capybara.default_max_wait_time = 15
Capybara.save_and_open_page_path = 'tmp/capybara'

我查看了一个看起来相关的thread in the capybara-webkit gem,但我实际上并没有使用 webkit。

任何帮助将不胜感激。

【问题讨论】:

  • 将您的 chromedriver 升级到最新版本 - 2.24
  • @TomWalpole 这让我走上了正确的道路。我对原始帖子进行了编辑。谢谢你的帮助,我快疯了。

标签: selenium capybara eof ubuntu-16.04


【解决方案1】:

原来我正在使用一个名为 chromedriver-helper 的 gem,它使用 rbenv 来覆盖 capybara 和 selenium 实际使用的 chromedriver 版本来运行测试。 gem 自述文件说尝试在 rails 应用程序的上下文中运行chromedriver-update,这会清除所有内容。

【讨论】:

  • 救命稻草,还是不明白问题出在哪里
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-02
相关资源
最近更新 更多