【问题标题】:EOFError: end of file reached -- all js specs are crashing Capybara with an older Chrome driverEOFError:到达文件结尾——所有 js 规范都在使用旧版 Chrome 驱动程序使 Capybara 崩溃
【发布时间】:2017-07-02 18:53:03
【问题描述】:

Capybara 使用 Chrome 驱动和设置:

spec_helper

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.javascript_driver = :chrome

我好像开始了

 EOFError:
   end of file reached

当我使用 chrome 驱动程序运行我的所有 Javascript 测试时,所有

这似乎是在 2016 年 10 月 27 日或前后开始的

与 poltergeist 一起运行,它们运行良好。

• 当它们崩溃时,它们似乎会打开多个挂起(但不退出)的 chrome 实例,请参阅 http://screencast.com/t/Worwl9d6Iuhr screenshot example

• 这些似乎只影响我的 javascript 规范(:js => 在 Capybara 中为 true)

• 重新启动我的机器并没有解决问题

• 我的 Chrome Mac OS X 目前位于 54.0.2840.71

• 我不确定第 71 版次分点版本何时发布,因为 Chrome 不会告诉您,甚至似乎在某种更新历史记录中也没有提供它。公开信息说子点版本 54.0.2840 于 2016 年 10 月 12 日发布,但没有具体说明子点版本 71 的发布时间

• 我可以在 master 上重现我的两个代码的效果,而且,我在本周早些时候使用 Chrome 驱动程序运行这些规范有一个特定的记忆,所以我强烈怀疑 Chrome 做了一个 sub-sub-point在这里释放并打破了这个。

如果有其他人可以确认,我将不胜感激。否则,如果我发现本地问题,我会在这里发布答案。

• 水豚 2.7.1

• selenium-webdriver 2.53.0

• 我在我的机器中找到了 Chromedriver 可执行文件 /usr/local/bin/chromedriver [这是正确的 - 我在 /Users/jason/bin/chromedriver 中似乎有一个较旧的吗?]

$ which chromedriver /usr/local/bin/chromedriver

$ /usr/local/bin/chromedriver -v ChromeDriver 2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b)

【问题讨论】:

  • 当它们崩溃时,它们似乎会打开多个挂起(但不退出)的 chrome 实例,请参阅screencast.com/t/Worwl9d6Iuhr screenshot example
  • 确保您运行的是最新的 chromedriver。 2.25 到现在

标签: ruby-on-rails selenium-webdriver capybara


【解决方案1】:

将 Chrome 驱动程序升级到 2.25 解决了这个问题

通过 brew 来实现

$ brew unlink chromedriver
Unlinking /usr/local/Cellar/chromedriver/2.20... 1 symlinks removed
$ brew install chromedriver
==> Using the sandbox
==> Downloading https://chromedriver.storage.googleapis.com/2.25/chromedriver_mac6
######################################################################## 100.0%
==> Caveats
To have launchd start chromedriver now and restart at login:
  brew services start chromedriver
Or, if you don't want/need a background service you can just run:
  chromedriver
==> Summary
?  /usr/local/Cellar/chromedriver/2.25: 4 files, 10.3M, built in 7 seconds

【讨论】:

  • 这是正确的; capybara mailing list 上有类似的解决方案
  • 如果 chromedriver 没有升级到您期望的版本,请尝试运行 brew update 以获取最新版本的 Homebrew 和所有公式,然后尝试 brew upgrade chromedriver
  • @NickTomlin-- 是的,这就是我的交叉发帖,就像疯狂的交叉发帖寻找错误的疯子一样。
【解决方案2】:

希望这对某人有所帮助。我最近在特定端口上使用 capybara/poltergeist 时遇到此错误(`.,然后我有一个崩溃的测试进程仍在侦听特定端口。

【讨论】:

    【解决方案3】:

    如果您使用的是 rbenv,则可以使用 brew 升级 chromedriver,而不是复制可执行文件:

    例如,我使用的是 ruby​​ 2.4.1:

    $ cp /usr/local/Cellar/chromedriver/2.30/bin/chromedriver $HOME/.rbenv/versions/2.4.1/bin/
    $ chmod +x $HOME/.rbenv/versions/2.4.1/bin/chromedriver
    

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-05
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多