通过属性获取元素

2024-01-05

我会很短。

据我所知,watir 库提供了两种获取 html 元素的方法。

几乎对于每个元素(div、button、table、li 等)watir 都提供了两种方法:

。一种是“单一”方法,仅获取一个特定元素。例如:

watir_instance.div(:id,'my_div_id')
watir_instance.link(:href,'my_link_href')
watir_instance.button(:class =>'my_button_class', :index => 4)

这些方法只会检索单个元素。没关系...

。第二个是“复数”方法,它将检索 watir 实例的所有元素

watir_instance.divs
watir_instance.links
watir_instance.buttons

但据我所知,watir 没有提供一种在特定条件下获取多个元素的方法。

例如...如果我想刷新所有带有 id:my_link_id 的链接,那么做这样的事情会很容易:

watir_instance.divs(:id, 'my_link_id').each do |link|
  link.flash
end

使用 hpricot,这个任务非常简单......但如果你的目标不是解析,我找不到一个 Watir 方法来完成我想要的任务。

希望你能理解我...

干杯,胡安!!


Juan,

您的脚本有几个问题:

  • 你说你想闪烁所有链接,但随后你使用watir_instance.divs。它应该是watir_instance.links
  • 你将参数传递给divs方法:watir_instance.divs(:id, 'my_link_id')。应该只是watir_instance.divs

你的例子也很奇怪:

我想闪烁所有链接 id:我的链接id

据我所知,id在页面上应该是唯一的。

所以,这里有不同的例子:

1)刷新本页所有链接:

require "watir"
b = Watir::IE.start "http://stackoverflow.com/questions/1434697"
b.links.each do |link|
  link.flash
end

2) 刷新此页面上所有包含的链接questions在 URL 中(奖励:滚动页面,以便看到闪烁的链接):

require "watir"
b = Watir::IE.start "http://stackoverflow.com/questions/1434697"
b.links.each do |link|
  if link.href =~ /questions/
    link.document.scrollintoview
    link.flash
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过属性获取元素 的相关文章