我正在尝试使用Cucumber和Capybara为我的Rails应用程序编写一些集成测试。然而,我的应用程序的主页面没有加载任何数据 - 加载页面后,它会触发一个javascript来检索要插入页面的数据:
jQuery(document).ready(function() {
pullUpdates();
});
pullUpdates函数存在于我的application.js文件中。
现在,诀窍是,如果我只是运行应用程序,这很好。当我运行黄瓜时,它会通过selenium在Firefox中打开页面,但数据永远不会加载。我尝试首先延长超时,所以它现在等待好30秒才能加载数据 - 它永远不会。事实上,我已经进入并查看了服务器日志,我的javascript似乎从未进行过ajax调用。
我发现了capybara-firebug gem,接下来,想到也许我只能看看客户端javascript中发生了什么 - 但是当页面打开时它没有打开firefox,所以它没有捕获他首先出现的任何javascript错误。我在firefox本身打开了错误控制台,我认为htere是错误,但是我无法阅读它们,因为它们会立即被selenium试图检查它正在查找的对象是否已经显示。
我想这是一件简单,愚蠢和我的错。但是,我没有看到如何诊断它 - 它没有击中服务器,问题出在客户端某处。我可以强制Capybara在错误输出后让页面保持打开状态,以便我可以返回并阅读错误日志吗?有没有更好的方法来解决这个问题?