Watir 没有简单地定位标签 HTML

Watir not locating tags in simple HTML

我刚开始使用 Ruby 和 Webdriver 来处理 HTML 的字符串。我艰难地走过了学习曲线,但要么我仍然做错了什么,要么 Watir 的一致性很差。

我正在尝试让 Watir 定位几个 span 标签,因为我想要它们之间的文本。我可以 puts the HTML into my console 就好了。我可以看到我想要的标签。出于某种原因,我每次尝试找到它们 returns nil.

我认为它不会返回 nil。你正在做 putsputs 的值为 nil。您传递给 puts 的结果在 nil 之前的行中。尝试删除 puts,您应该可以直接获取对象。

输出解释不正确。 nil 是调用 puts 返回的值。它与 Watir 或与之交互的元素无关。你会看到与其他对象相同的东西:

puts "test"
#=> "test"
#=> nil

Watir 仅在您要求它对元素执行某些操作时才去定位该元素。例如,

browser.span(class: 'ShipmentBreadcrumb')

只是创建一个 Watir::Span 的实例。它不会在页面上查找元素或尝试检索有关它的任何数据。直到您在实例上调用某些东西,它才会去寻找元素。

puts browser.span(class: 'ShipmentBreadcrumb')
#=> #<Watir::Span>
#=> nil
puts browser.span(class: 'ShipmentBreadcrumb').text
#=> "Sporting Goods"
#=> nil