QTP处理WebTable
在测试B/S系统的时候,我们经常遇到很多列表的内容是用table做的,qtp会将这些table控件识别为WebTable控件,
那么我们如何获取webtable中的单元格(cell)里面的内容及对象呢?方法如下:
1.获取到webtable对象
2.获取webtable的总行数(RowCount)以及总列数ColumnCount
3.1.若需要获取单元的文字内容,可以用循环(两层for循环),用单元格的行数和列数,通过GetCellData方法遍历获取单元格内容
3.2若想获取单元的对象,可以用循环(两层for循环),通过ChildItem方法遍历获取webtable中的对象
4.将获取到的内容或对象与预期结果进行比较判断,找到符合要求的内容或对象,并进行后续操作
那么我们如何获取webtable中的单元格(cell)里面的内容及对象呢?方法如下:
1.获取到webtable对象
2.获取webtable的总行数(RowCount)以及总列数ColumnCount
3.1.若需要获取单元的文字内容,可以用循环(两层for循环),用单元格的行数和列数,通过GetCellData方法遍历获取单元格内容
3.2若想获取单元的对象,可以用循环(两层for循环),通过ChildItem方法遍历获取webtable中的对象
4.将获取到的内容或对象与预期结果进行比较判断,找到符合要求的内容或对象,并进行后续操作
分析:
1.用SPY查看webtable对象的构成,发现该列表是由两列组成,复选框(WebCheckBox)位于第一列,选项名称位于第二列
1.用SPY查看webtable对象的构成,发现该列表是由两列组成,复选框(WebCheckBox)位于第一列,选项名称位于第二列
2.通过两层循环分别动态设置遍历单元格时的行数和列数
3.将获取单元格内容的函数GetCellData的第一个参数设为变量i,通过循环控制i,实现遍历所有行,第二个参数固定为2,以上设置可以实现遍历webtable第二列的全部单元格
4.将获取复选框对象的函数ChildItem的第一个参数设为变量i,通过循环控制i,实现遍历所有行,第二个参数固定为1,第三个参数设为要选择的对象类型复选框(WebCkeckBox),第四个参数设置为0
5.通过for循环遍历第二列的数据,获取单元格内容,并进行判断是否为"QTP Webtable",若找到了,则进入步骤6;若不是则继续遍历第二列其他单元格,
6.若步骤5中找到了所需选项,则在相同行中找到复选框进行勾选,并结束流程
代码如下:
'封装WebTable对象
Set WebTable = Browser("个人空间管理").Page("个人空间管理").WebTable("标题")
'获取WebTable行数
Row_Count = oWebTable.RowCount
'获取WebTable总列数
Column_Count = oWebTable.ColumnCount(1)
For i=1To Row_Count
'是否找到所需选项名称,默认为未找到
Flag = 0
For j=1 To Column_Count
'获取列表中选项名称
Cell_Value = oWebTable.GetCellData(i,2)
'判断是选项名称是否为QTP Webtable
If Trim(Cell_Value)="QTP Webtable" Then
'获取QTP Webtable对应行的复选框
Set WebCheckBox = oWebTable.ChildItem(i,1,"WebCheckBox",0)
'勾选复选框
oWebCheckBox.Set "ON"
'标记已经找到所需选项
Flag = 1
Exit For
End If
Next
'若找到所需选项,则退出循环
If Flag = 1 Then
Exit For
End If
Next
'封装WebTable对象
Set WebTable = Browser("个人空间管理").Page("个人空间管理").WebTable("标题")
'获取WebTable行数
Row_Count = oWebTable.RowCount
'获取WebTable总列数
Column_Count = oWebTable.ColumnCount(1)
For i=1To Row_Count
'是否找到所需选项名称,默认为未找到
Flag = 0
For j=1 To Column_Count
'获取列表中选项名称
Cell_Value = oWebTable.GetCellData(i,2)
'判断是选项名称是否为QTP Webtable
If Trim(Cell_Value)="QTP Webtable" Then
'获取QTP Webtable对应行的复选框
Set WebCheckBox = oWebTable.ChildItem(i,1,"WebCheckBox",0)
'勾选复选框
oWebCheckBox.Set "ON"
'标记已经找到所需选项
Flag = 1
Exit For
End If
Next
'若找到所需选项,则退出循环
If Flag = 1 Then
Exit For
End If
Next