如何使用" id =' foo'"来获取标记元素的实例数量。使用Watir?

时间:2016-08-18 18:27:22

标签: ruby-on-rails ruby watir watir-webdriver

如何使用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之外。

2 个答案:

答案 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}