ruby - 返回匹配为数组的元素

标签 ruby testing webdriver watir

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

最佳答案

你可以这样做:

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

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

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

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

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

elements.each do |element|
    //some assert on element
end

关于ruby - 返回匹配为数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234145/

相关文章:

ruby-on-rails - Rails 共享 Controller 操作

python - 命令出错,退出状态为一

unit-testing - 测试包含 stderr、stdout 和 os.Exit() 的函数

ruby - 使用 Ruby 的 PageObject - 在文本字段中设置文本仅适用于主文件

java - 如何使用 Selenium WebDriver 获取 CSS 选择器?

ruby - em-http-request - 我应该把我的 EventMachine.stop 放在哪里?

ruby-on-rails - rails ActiveRecord : Find All Users Except Current User

ruby - 使用 Sinatra 模块化样式为每个实例而不是每个请求创建一个变量

计算字母字符数的 Python 函数,跟踪 "e"出现的次数

node.js - Protractor 偶尔无法使用 EADDRINUSE 127.0.0.1 :4444 error 执行测试