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

时间:2013-03-23 15:00:59

标签: javascript rspec capybara hang 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];
  ...

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

其他人遇到这个问题吗?

1 个答案:

答案 0 :(得分:0)

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

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