我是Watir世界的新手,曾在以前的公司使用过webdriver和geb。我想知道Watir是否提供了类似于webdriver的get_elements方法的任何方法。请参阅下面的示例。
想象一下,在更大的页面中存在以下html
<div class="someClass">someText</div>
<div class="someClass">someMoreText</div>
<div class="someClass">evenMoreText</div>
我希望通过定位给定类的所有元素并迭代它们来对每个div进行一些断言。使用webdriver,我可以这样做:
elements = driver.get_elements(:css, ".someClass")
elements.each do |element|
//some assert on element
end
Watir是否提供了等效的结构?我在Watir文档中找不到任何有用的东西。
答案 0 :(得分:2)
你可以这样做:
elements = driver.elements(:css => '.someClass')
或者如果你知道他们都是div,你应该这样做:
elements = driver.divs(:css => '.someClass')
这两种方法都会返回符合条件的元素集合。在第一种情况下,它将匹配任何标记类型,而在第二种情况下,结果将限制为div。
然后,使用上述任何一种方法,您可以以相同的方式迭代:
elements.each do |element|
//some assert on element
end
答案 1 :(得分:2)
我建议您使用:css
定位器,而不是使用:class
定位器,因为它通常更快并且使您的测试更具可读性:
elements = driver.divs(:class => 'someClass')
此外,请不要忘记:id
,:name
,:text
和其他人。