说说watir-webdriver那些事(十二)table的处理
程序员文章站
2022-03-02 21:10:43
...
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语言等很多高级语言都比较相似
上一篇: 读取Jar包中的json文件
下一篇: java读取jar包中的文件