2

我有一个带有 Backbone 和 Capybara 的 Rails 项目用于集成测试。

在我正在运行的测试中save_and_open_page,它成功地在浏览器中使用有效的 Javascript 打开了页面。

但是当我跑步时puts page.body(就在之后save_and_open_page)它给了我

//skipped

<div id="main">
  Loading...
</div>

</body></html>

然后 nohave_content和其他选择器工作。

它如何保存并打开有效页面但页面正文错误?

如何解决?

4

2 回答 2

3

Capybara 的默认驱动程序是 Rack::Test。您的页面可能需要 javacript,这意味着 Capybara 的默认驱动程序无法正确呈现所有内容。刚设置Capybara.default_driver = :selenium。这样 javascript 就可以正确运行了。

另请参阅链接,它解释了如何仅为一个测试用例而不是整个测试套件更改驱动程序。请注意,如果您使用 selenium 作为驱动程序,则该方法save_and_open_page可能不起作用。

于 2013-07-15T20:14:00.627 回答
0

我需要添加到spec_helper.rb该行

require 'capybara/rspec'

并使用默认浏览器驱动程序

于 2013-07-12T18:26:11.120 回答