如何使用 Watir 获取带有 "id='foo'" 的标签元素的实例数?
How can I get the number of instances of a tag element with "id='foo'" using Watir?
如何使用 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
.
我知道如何做以上所有事情
如果你想知道有多少匹配,你需要得到一个元素集合(不仅仅是一个元素)。通过复数化元素方法检索集合 - 即 as
.
b.as(:id => 'foo')
#=> <Watir::AnchorCollection>
从集合中,您可以使用length
(或count
)查找实例数:
b.as(:id => 'foo').length
请注意,元素集合是可枚举的。这意味着您不需要使用 while
循环和手动跟踪当前索引和总元素。例如,使用each
,你可以简单地写成:
b.as(:id => 'foo').each do |a|
puts a.text
end
以下代码应该适合您:
arr = Array.new
b.as(:id => 'foo').each { |a| arr.push a}
如何使用 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
.
如果你想知道有多少匹配,你需要得到一个元素集合(不仅仅是一个元素)。通过复数化元素方法检索集合 - 即 as
.
b.as(:id => 'foo')
#=> <Watir::AnchorCollection>
从集合中,您可以使用length
(或count
)查找实例数:
b.as(:id => 'foo').length
请注意,元素集合是可枚举的。这意味着您不需要使用 while
循环和手动跟踪当前索引和总元素。例如,使用each
,你可以简单地写成:
b.as(:id => 'foo').each do |a|
puts a.text
end
以下代码应该适合您:
arr = Array.new
b.as(:id => 'foo').each { |a| arr.push a}