【问题标题】:Nokogiri with Rspec带有 Rspec 的 Nokogiri
【发布时间】:2014-07-06 03:22:31
【问题描述】:

有没有办法在 Rspec 中使用 Nokogiri?

特别是我正在尝试从控制器操作中获取响应并将其转换为 Nokogiri 对象 page 并运行特定于 Nokogiri 的解析,如下所示:

page.search('input[name="some_name"]').size.should == 1

我在哪里包含 Nokogiri - 会在 spec_helper.rb 中吗?

如何将ActionController::TestResponse 转换为 Nokogiri 对象?

或者是否可以通过使用普通的 Rspec 语法来运行上述类型的断言?

【问题讨论】:

  • 听起来像是水豚 (github.com/jnicklas/capybara)(特别是查询模块)的用途。
  • 如果您正在测试例如与 XML 对话的 HTTP api,则不会

标签: ruby-on-rails ruby rspec nokogiri


【解决方案1】:

如果您不使用capybara,正如@sevenseacat 建议的那样,您可以执行以下操作:

page = Nokogiri::HTML(response.body)

然后使用Nokogiri 搜索方法。但是capybara 确实是一个更好的方法,因为它包含查询模块,让我们可以做类似的事情

expect(page).to have_css('input[name=some_name]', count:1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2021-11-11
    • 1970-01-01
    相关资源
    最近更新 更多