【问题标题】:Capybara doesn't render page in testCapybara 在测试中不呈现页面
【发布时间】:2013-07-12 15:03:30
【问题描述】:

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

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

但是当我运行 puts page.body(紧跟在 save_and_open_page 之后)时,它给了我

//skipped

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

</body></html>

然后没有have_content 和其他选择器工作。

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

如何解决?

【问题讨论】:

    标签: ruby-on-rails backbone.js capybara


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我需要添加到spec_helper.rb这一行

      require 'capybara/rspec'
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-14
        • 1970-01-01
        相关资源
        最近更新 更多