`
dtrex
  • 浏览: 138249 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

说说watir-webdriver那些事(十二)table的处理

阅读更多

Table是经常遇到的一个数据展示组件,我们在做自动化测试的时候免不了跟他打交道。这里我们简单说一下如何处理Table这样的组件。

首先还是举个例子,

 

 

<html>
    <head>
        <title>Table</title>
        <style>
            table {border: 1px solid #ccc}
        </style>
    </head>
    <body>
        <table id = "t">
            <th>C1</th><th>C2</th><th>C3</th>
            <tr>
                <td>v1</td>
                <td>v2</td>
                <td>v3</td>
            </tr>
            <tr>
                <td>k1</td>
                <td>k2</td>
                <td>k3</td>
            </tr>
        </table>
    </body>
</html>

 

 

然后我们演练一下具体的table操作:

 

require 'watir-webdriver'
b=Watir::Browser.new
b.goto "........................../tables.html"
b.table(:id=>"t").rows #所有的行
b.table(:id=>"t").[](0) #获取第一行
b.table(:id=>"t").[](0).cells #获取第一行的所有单元格
b.table(:id=>"t").[](0).[](0) #获取第一行第一列的单元格
#注意上面列出的都是获取的元素(与其他诸如文本框空间等都有相同的父类)并不是文本
#对于以上所提到的对象,都是从Element继承而来,所以click,enabled?,exists?,fireEvent,flash,focus等方法都直接可以#使用。(这里说明涉及到watir的源码类结构如有兴趣可以自己看一下相关的源码)
 

上面的方法基本上可以获取Table的所有元素了,当然你会发现table的单元格里面经常存在有相应的控件,比如说checkbox控件,text_field控件等,遇到这样的情况,可以使用层级关系的定位来找到相应的控件

 

比如说表格的第二行第一列的checkbox,需要选择,可以使用如下代码:

 

b.table(:id=>"t").[](1).[](0).checkbox set

 还要注意,watir中的元素都是从0开始算第一个的,这个与C语言等很多高级语言都比较相似

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics