gpt4 book ai didi

html - 按属性获取元素

转载 作者:太空宇宙 更新时间:2023-11-03 16:12:06 24 4
gpt4 key购买 nike

我会很矮。

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

watir 几乎为每个元素(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 方法来做我想要的。

希望你能理解我...

干杯,胡安!

最佳答案

胡安,

你的脚本有几个问题:

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

你的例子也很奇怪:

i want to flash all the links with 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

关于html - 按属性获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com