如何使用Watir获取带有id='foo'
的标记元素的实例数?
我有这个:
b = Watir::Browser.new
b.a(:id => 'foo')
如何通过索引获取实例数和访问权限,如下所示:
b.a(:id => 'foo', :index => $i) #Here, $i is a variable in a loop
在伪代码中,我基本上试图这样做:
num = "number of a tags with id foo"
while $i less than num do
put b.a(:id => 'foo', :index => $i).text into an array
end
我知道如何做以上所有事情除了num
之外。
答案 0 :(得分:5)
如果你想知道有多少匹配,你需要获得一个元素集合(不仅仅是一个元素)。通过复用元素方法来检索集合 - 即as
。
b.as(:id => 'foo')
#=> <Watir::AnchorCollection>
从集合中,您可以使用length
(或count
)查找实例数:
b.as(:id => 'foo').length
请注意,元素集合是Enumerable。这意味着您不需要使用while
循环并手动跟踪当前索引和总元素。例如,使用each
,您只需编写:
b.as(:id => 'foo').each do |a|
puts a.text
end
答案 1 :(得分:1)
以下代码应该适合您:
arr = Array.new
b.as(:id => 'foo').each { |a| arr.push a}