1

我在 Ruby 中使用 Webdriver,我想验证页面上是否存在三个文本。

这是我要验证的 html 片段:

<table class="c1">
  <thead>many subtags</thead>
  <tbody id="id1">
    <tr class="c2">
        <td class="first-child">
            <span>test1</span>
        </td>
        manny other <td></td>
    </tr>
    <tr class="c2">
        <td class="first-child">
            <span>test2</span>
        </td>
        manny other <td></td>
    </tr>
    <tr class="c2">
        <td class="first-child">
            <span>test3</span>
        </td>
        manny other <td></td>>
</tr>
  </tbody>
</table>

如何使用验证此页面上显示的“test1”、“test2”和“test3”

  • 查找元素
  • 查找元素
  • 获取页面源?

最好的方法是什么?

非常感谢。

4

2 回答 2

3

我会选择#find_elements方法,因为使用其他 2 个选项将有机会获得没有这样的元素异常

首先将它收集在一个数组中 -

array = driver.find_elements(:xpath,"//table[@class='c1']//tr[@class='c2']//span[text()='test1']")

现在检查数组大小

"test1 is present" unless array.empty?

同样的方式我们可以测试 test2 和 test3。

于 2013-10-16T03:49:56.823 回答
1

以下示例代码将帮助您执行任务:

 def check_element_exists
     arr = ["test1", "test2", "test3"]
     arr.each do |a|
     if $driver.page_source.include? a
        puts a
     else
        print a
        puts " Not present"
     end
 end
于 2014-02-28T11:23:13.923 回答