Watir 没有简单地定位标签 HTML
Watir not locating tags in simple HTML
我刚开始使用 Ruby 和 Webdriver 来处理 HTML 的字符串。我艰难地走过了学习曲线,但要么我仍然做错了什么,要么 Watir 的一致性很差。
我正在尝试让 Watir 定位几个 span 标签,因为我想要它们之间的文本。我可以 puts the HTML into my console 就好了。我可以看到我想要的标签。出于某种原因,我每次尝试找到它们 returns nil.
我认为它不会返回 nil
。你正在做 puts
。 puts
的值为 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
我刚开始使用 Ruby 和 Webdriver 来处理 HTML 的字符串。我艰难地走过了学习曲线,但要么我仍然做错了什么,要么 Watir 的一致性很差。
我正在尝试让 Watir 定位几个 span 标签,因为我想要它们之间的文本。我可以 puts the HTML into my console 就好了。我可以看到我想要的标签。出于某种原因,我每次尝试找到它们 returns nil.
我认为它不会返回 nil
。你正在做 puts
。 puts
的值为 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