For*_*ing 0 ruby ruby-on-rails watir watir-webdriver
如何id='foo'使用Watir 获取标记元素的实例数?
我有这个:
b = Watir::Browser.new
b.a(:id => 'foo')
Run Code Online (Sandbox Code Playgroud)
那么如何通过索引获取实例数和访问权限,如下所示:
b.a(:id => 'foo', :index => $i) #Here, $i is a variable in a loop
Run Code Online (Sandbox Code Playgroud)
在伪代码中我基本上试图这样做:
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
Run Code Online (Sandbox Code Playgroud)
我知道如何做以上所有事情除了发现num.
如果你想知道有多少匹配,你需要获得一个元素集合(不仅仅是一个元素).通过复用元素方法来检索集合 - 即as.
b.as(:id => 'foo')
#=> <Watir::AnchorCollection>
Run Code Online (Sandbox Code Playgroud)
从集合中,您可以使用length(或count)查找实例数:
b.as(:id => 'foo').length
Run Code Online (Sandbox Code Playgroud)
请注意,元素集合是Enumerable.这意味着您不需要使用while循环和手动跟踪当前索引和总元素.例如,使用each,你可以简单地写:
b.as(:id => 'foo').each do |a|
puts a.text
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |