• QTP处理WebTable


    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对象)中名称为"QTP Webtable"的选项,并勾选该选项前的复选框
    分析:
    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
  • 相关阅读:
    IT知识构架与操作系统简介
    read与for循环语句
    shell基础练习题
    shell 100以内加法
    shell
    python学习第一日
    shell脚本基本介绍
    bash的基本特性
    Linux习题
    Linux基本命令
  • 原文地址:https://www.cnblogs.com/hgfg331/p/3169425.html
Copyright © 2020-2023  润新知