Chr*_*ris 18 ruby parsing nokogiri
如果在页面上存在一个元素(在本例中为div),我如何在使用Nokogiri(Ruby gem)解析HTML页面时进行检查?
在我的测试页面上,它确实存在,因此pp产生了预期的Nokogiri输出.但if语句不起作用,== true似乎是错误的方法.有任何改进建议吗?干杯,克里斯
pp page.at('.//div[@class="errorMsg"]')
if page.at('.//div[@class="errorMsg"]') == true then
puts "Error message found on page"
end
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 32
比较true
不是正确的方法.如果找不到任何内容,at
则会返回该调用nil
:
if page.at_css('div.errorMsg')
puts 'Error message found on page'
else
puts 'No error message found on page'
end
Run Code Online (Sandbox Code Playgroud)
是一种方式,因为nil
在布尔上下文中是假的,但是Nokogiri::XML::Node
不会.我也改用CSS表示法,因为我觉得比XPath更清楚这样的简单事情,但你可以自由使用at_xpath
或提供XPath或CSS选择器,at
如果你更喜欢它.
此外,这三个at
方法返回第一个匹配元素,nil
因此如果您只想检查存在,它们是很好的选择.
归档时间: |
|
查看次数: |
12520 次 |
最近记录: |