当使用capybara-webkit和一个使用async = true加载外部脚本的页面时,Rspec会定期挂起

jgd*_*yes 5 javascript rspec hang capybara capybara-webkit

我正在使用一个使用uservoice的应用程序.uservoice片段

  var uv = document.createElement('script');
  uv.type = 'text/javascript';
  uv.async = true;
  uv.src = ...; // external call to uservoice to fetch js
  var s = document.getElementsByTagName('script')[0];
  ...
Run Code Online (Sandbox Code Playgroud)

这个javascript加载在所有页面上.运行时rake spec运行会定期挂起.当我删除uservoice片段时,所有测试都顺利运行.我已经尝试过设置Capybara.javascript_driver = :webkit_debug,我看不到uservoice的响应.当我设置时,page.driver.browser.timeout我可以看到来自uservoice的0响应,并且规格将因超时错误而失败.

其他人遇到这个问题?

mki*_*irk 1

当我的开发机器与互联网断开连接时,我在等待外部脚本引导(例如谷歌分析)时遇到了超时错误。

当我尝试调试水豚时,有时我仍然使用 firebug 和 selenium 驱动程序,因为看到实际的浏览器运行它可能会很有启发。