QTP之如何处理WebTable中的Link

上一篇 / 下一篇  2013-04-06 16:38:31 / 个人分类:QTP自动化测试

   在测试的程序中WebTable有N行N列,在最后一列为link,如修改,点击修改后,页面会弹出一个对话框,再进行下一步操作。需要去选择固定的某一行,进行修改操作,那么如何实现呢?一般我们遍历这个webTable,寻找我们需要的值,然后去做link操作。可如果我们利用WebTable相关操作的话,我得到的link只是一个值一个文本,而不是一个link对象,那么我们要怎么去除了WebTable中的Link呢?
   一、仍然利用WebTable的相关属性和方法,遍历表格,得到我们想要的值的那一行,再取相应的列,取到对应行列的“修改”,然后把“修改”映射为一个Link对象,然后再进行修改的操作。代码如下:
olename = "司磅员"
Browser("xxxxx").Page("xxx").WebEdit("userName").Set "400800"
Browser("xxxxx").Page("xxx").WebEdit("password").SetSecure "515bbc94055e12befef6334d3d4dac459bec"
Browser("xxxxx").Page("xxx").WebButton("WebButton").Click
Browser("xxxxx").Page("xxx").Frame("Frame").WebElement("系统管理").Click
Browser("xxxxx").Page("xxx").Frame("Frame").Link("提款额度管理").Click
Dim RowCount
Dim RoleName1
RowCount = Browser("xxxxx").Page("xxx").Frame("mainFrame_2").WebTable("角色名").RowCount
For  i=2 to RowCount -1
RoleName1 = Browser("xxxxx").Page("xxx").Frame("mainFrame_2").WebTable("角色名").GetCellData(i,1)
If  RoleName1 = RoleName  Then
Set  WebCheckBox = Browser("xxxx").Page("xxx").Frame("mainFrame_2").WebTable("角色名").ChildItem(i,3,"Link",0)
OWebCheckBox.click
End If
Browser("xxxxx").Page("xxx").Frame("mainFrame").Link("修改").Click
Browser("xxxxx").Page("xxx").Frame("mainFrame_2").WebEdit("WebEdit").Set "10000"
Browser("xxxxx").Page("xxx").Frame("mainFrame_2").WebButton("确定").Click
Next
 二、通过查看“修改”的相关属性,发现其属性index的值或随着WebTable的行数的增加而呈现一个规律性的增加。所以可以使用描述性编程加以实现。
Browser("title:=xxxxx").Page("title:=xxx").Frame("name:=mainFrame").Link(""index:="&(i-2)").Click
两种方法比较:
第一种方法利用WebTable的ChildItem的方法把得到的“修改”文本映射为Link对象,实现起来相对简单,但代码量比较大,效率也不高。
第二种方法深入研究WebTable中的“修改”属性后,不容易想到,但实现起来简单,代码量小,时间复杂度也低,效率高
 

TAG:

 

评分:0

我来说两句

Open Toolbar