我正在使用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,并且规范将因超时错误而失败。

还有其他人遇到这个问题吗?

最佳答案

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

在尝试调试 capybara 时,有时仍会使用Firebug和Selenium驱动程序,因为它可能会启发您看到实际的浏览器。

关于javascript - 当将capybara-webkit与加载async = true的外部脚本的页面一起使用时,Rspec会定期挂起,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15588234/

10-11 09:11