zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    每一次要fix的pr
    docker && k8s
    beisen
    c++迭代器失效问题
    视频分析
    视频分析记录
    深信服实习生笔试题-20190315
    laravel接口设计
    tensorflow利用预训练模型进行目标检测(四):检测中的精度问题以及evaluation
    tensorflow利用预训练模型进行目标检测(三):将检测结果存入mysql数据库
  • 原文地址:https://www.cnblogs.com/hgfg331/p/3169425.html
Copyright © 2011-2022 走看看