Ruby on rails 在rails集成测试期间未调用jQuery document.ready

Ruby on rails 在rails集成测试期间未调用jQuery document.ready,ruby-on-rails,capybara-webkit,Ruby On Rails,Capybara Webkit,我有一个集成测试,对于严重依赖JavaScript的页面来说失败了。同一页面在浏览器中运行正常。 将测试简化到最低限度,我发现仅测试页面加载后javascript添加的选择器的存在性将失败 在预编译测试资产并使用save_和open_页面后,我发现jQuery ready事件的处理程序在集成测试期间未运行 我没有找到任何关于这个问题的参考资料,所以我想我做错了什么。 有人能帮我弄清楚吗 我使用的是rails 3.2.11、RSpec 2.13.0、Capybara 2.0.3和Capybara

我有一个集成测试,对于严重依赖JavaScript的页面来说失败了。同一页面在浏览器中运行正常。 将测试简化到最低限度,我发现仅测试页面加载后javascript添加的选择器的存在性将失败

在预编译测试资产并使用save_和open_页面后,我发现jQuery ready事件的处理程序在集成测试期间未运行

我没有找到任何关于这个问题的参考资料,所以我想我做错了什么。 有人能帮我弄清楚吗


我使用的是rails 3.2.11、RSpec 2.13.0、Capybara 2.0.3和Capybara webkit 0.14.2,默认情况下rails使用的webdriver不处理JS。如果您想要JS支持,您需要使用JS感知驱动程序之一,如Selenium(运行全功能浏览器)、capybara webkit或poltergeist(无头webkit浏览器)。还有很多,但这三个是最受欢迎的

我通过检查AJAX请求为自己解决了这个问题。问题是我要求的是http://...“而不是我的页面的“/”。这意味着它引发了一个CORS(“来自域外的ajax请求”),尽管该请求看起来像来自域内


我最初的症状是“当使用Capybara和Poltergeist或Selenium进行测试时,javascript插入的HTML元素不在页面上(但在运行应用程序时在页面上).

我知道。你没有注意到,但我使用的是capybara-webkit。你解决过这个问题吗?我得到的情况几乎完全一样。如果你等待的JavaScript是JQuery AJAX请求,Thoughtbot关于等待AJAX的帖子可能会有所帮助: