问题描述
有没有办法在 Rspec 中使用 Nokogiri?
Is there a way to use Nokogiri in Rspec?
特别是我试图从控制器操作中获取响应并将其转换为 Nokogiri 对象 page
并运行 Nokogiri 特定的解析,如下所示:
Particularly I'm trying to take the response from a controller action and convert that into a Nokogiri object page
and run Nokogiri-specific parsing like the one below:
page.search('input[name="some_name"]').size.should == 1
我在哪里包含 Nokogiri - 那会在 spec_helper.rb 中吗?
Where do I include Nokogiri - would that be in spec_helper.rb?
如何将 ActionController::TestResponse
转换为 Nokogiri 对象?
How do I convert the ActionController::TestResponse
into a Nokogiri object?
或者是否可以使用普通的 Rspec 语法来运行上述类型的断言?
Or is it possible to run the above kind of assertion by using plain Rspec syntax?
推荐答案
如果你没有使用 capybara,按照@sevenseacat 的建议,您可以执行以下操作:
If you're not using capybara, as suggested by @sevenseacat, you can do something like:
page = Nokogiri::HTML(response.body)
然后使用Nokogiri
搜索方法.但是 capybara
确实是一个更好的方法,因为它包含了查询模块,让我们可以做诸如
And then use the Nokogiri
search methods. But capybara
is really a better way to go because it includes the query module that let's do do things like
expect(page).to have_css('input[name=some_name]', count:1)
这篇关于带有 Rspec 的 Nokogiri的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!