1

我是 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 文档中找不到任何有用的东西。

4

2 回答 2

2

你可以做:

elements = driver.elements(:css => '.someClass')

或者如果你知道它们都是 div,你应该这样做:

elements = driver.divs(:css => '.someClass')

这两种方法都将返回与您的条件匹配的元素集合。在第一种情况下,它将匹配任何标签类型,而在第二种情况下,结果将仅限于 div。

然后,使用上述任何一种方法,您都可以以相同的方式进行迭代:

elements.each do |element|
    //some assert on element
end
于 2012-11-05T14:44:40.737 回答
2

:css我建议您不要使用定位器,而是使用:class定位器,因为它通常更快并且使您的测试更具可读性:

elements = driver.divs(:class => 'someClass')

另外,不要忘记:id,:name:text其他。

于 2012-11-07T21:19:35.257 回答