我将会做空。
据我所知,watir库提供了两种获取html元素的方法。
几乎每个元素(div,button,table,li等)都有两种方法:
。一种是“单数”方法,它只获得一个特定元素。例如:
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方法。
希望你能理解我......
干杯,胡安!!
答案 0 :(得分:2)
涓,
你的脚本有几个问题:
watir_instance.divs
。它应该是watir_instance.links
divs
方法:watir_instance.divs(:id, 'my_link_id')
。它应该只是watir_instance.divs
你的例子也很奇怪:
我想闪现所有的链接 ID:my_link_id
据我所知,id在页面上应该是唯一的。
所以,这里有不同的例子:
1)点击此页面上的所有链接:
require "watir"
b = Watir::IE.start "http://stackoverflow.com/questions/1434697"
b.links.each do |link|
link.flash
end
2)点击此页面上URL中有questions
的所有链接(奖励:滚动页面以便可以看到闪烁的链接):
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