校验表格一般有两个难点:
- 目标表格行数是不确定,但是需要操作其中的某一行,或者某一列
- 表格单格中嵌套其他控件
本节主要涉及目标表行数不确定时,如何定位行数,同时操作该行中的某一个格。这种情况广泛应用于在交易系统,报表系统中的测试操作。比如:提交一个订单,然后再订单列表中根据订单号寻找该订单,然后进行后续操作(比如修改,放弃等等)
处理这样的问题一般的思路如下:
- 定位行数,通过上一节的方法读取整个表格数据,通过某一列的唯一标识(如订单号),来定位行数
- 一般情况,列数是固定,(如不固定,可通过步骤1的方法定位列数),根据行数(Row)和列数(Column)获得具体单元格(Cell),并对单元格进行操作(如双击等等)
定位行数
首先我们要确认,我们已知在表格中那一列是标示列(比如第1列是订单号),同时我们要已知我们要操作的行的订单号是多少。
通过上节,我们知道RFT会把Table的内容存放在TableTestData中,所以首先,我们将获取TableTestData。然后遍历每个行中第1列的值是否是我们的订单号,以确定目标行数
获得单元格
通过getSubItem()的方法来获得单元格,以Html为例,Table的TestObject一般对应html中的table标签,而这里通过getSubItem()获得的TestObject则对应TD标签。
这样就可以获得TD对应的TestObject,然后进行操作或校验,比如click,doubleclick,getProperty等等。
下一节我将继续介绍,当我们的单元格(TD)中含有其他控件的时候的解决方法。