我刚开始使用Ruby和Webdriver来处理HTML字符串。我一直在学习曲线,但要么我还是做错了,要么Watir的一致性就是meh。
我正在尝试让Watir找到几个span标签,因为我希望它们之间有文本。我可以将 HTML放入我的控制台就好了。我可以看到我想要的标签。出于某种原因,我每次尝试前往他们都会返回nil。
答案 0 :(得分:1)
输出被错误地解释。 puts
是调用puts "test"
#=> "test"
#=> nil
返回的值。它与Watir或与之交互的元素无关。你会看到与其他对象相同的东西:
browser.span(class: 'ShipmentBreadcrumb')
当你要求它对它做一些事情时,Watir只会去找元素。例如,
puts browser.span(class: 'ShipmentBreadcrumb')
#=> #<Watir::Span>
#=> nil
puts browser.span(class: 'ShipmentBreadcrumb').text
#=> "Sporting Goods"
#=> nil
只需创建一个Watir :: Span的实例。它不会在页面上查找元素或尝试检索有关它的任何数据。直到你在实例上调用它去寻找元素时才会这样做。
volatile
答案 1 :(得分:0)
我不认为它正在返回nil
。你正在做puts
。 puts
的值为nil
。您传递给puts
的内容的结果位于nil
之前的行。尝试删除puts
,您应该直接获取对象。