QTP中Description对象使用的一点经验

 QTP中Description对象使用的一点经验
欢迎进入软件测试社区论坛,与200万 技术人员互动交流 >>进入
       我们在用QTP进行自动化脚本开发的时候,经常会要使用到Descrīption对象,但是在使用Descrīption时,却有一个问题,那就是在得到 了所有子对象后,进行循环点击时,经常会循环几次后,就报generic error而使脚本不能再往下执行,开始的时候很不明白,为什么会出现这种情况,后来经过找资料和自己实践,终于搞清楚了原因,先看代码:

Set ōDesc=Descrīption.Create()
 oDesc("micclass").Value ="Link"
 Set Lists=Browser("Yahoo!奇摩").Page("Yahoo!奇摩").ChildObjects(oDesc)
 no = Lists.count - 1

For i = 0 To no 
 no = Lists.count - 1
 Print i & Lists(i).GetRoProperty("innertext") & ":" & Lists(i).GetROProperty("url")
  If  instr(1,Lists(i).GetROProperty("url"),"http") = 1 Then
  Lists(i).Click
Dialog("Connect to tw.yahoo.com").WinButton("Cancel").Click @@ hightlight id_;_395324_;_scrīpt infofile_;_ZIP::ssf21.xml_;_
Browser("Yahoo! 奇摩").Page("Yahoo!奇摩").Sync @@ hightlight id_;_Browser("Yahoo!奇摩").Page("Yahoo!奇摩")_;_scrīpt infofile_;_ZIP::ssf22.xml_;_
Browser("Yahoo!奇摩").Close
  If Lists(i).GetRoProperty("innertext") = "寬窄頁面切換" Then
   i = i -1
  End If
 else
  Services.LogMessage  Lists(i).GetRoProperty("innertext") & "没有URL" , ErrorMsg
  End If
 Browser("Yahoo!奇摩").Sync
  
 if  Browser("Yahoo!奇摩").Page("Yahoo!奇摩").WebElement("notopenthelink").Exist(3) Then
  Services.LogMessage  i & Lists(i).GetRoProperty("innertext") & "連結錯誤" , ErrorMsg
 'sheetNew.cells(j+1,1).value = Lists(i).GetROProperty(text)
 'sheetNew.cells(j+1,2).value = Lists(i).GetROProperty(url)
 End If
   Browser("Yahoo!奇摩").Navigate("http://tw.yahoo.com/index.html")
   Browser("Yahoo!奇摩").Sync

    这个循环在运行几次后就会报错,我们只要在for循环下面加上一句:

 Set Lists=Browser("Yahoo!奇摩").Page("Yahoo!奇摩").ChildObjects(oDesc)

这样就不会报错了,原因是因为Lists是一个数组,在第一次赋给页面子对象以后,运行几次就会丢失对象,这样在再继续循环就会报错,这也可以算是QTP本身的一个BUG,所以各位朋友在以后用这个对象时要注意这个地方,谢谢啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值