51Testing软件测试论坛

标题: 使用childobject获取对象属性后,对其操作出现问题 [打印本页]

作者: zthua    时间: 2012-7-27 10:13
标题: 使用childobject获取对象属性后,对其操作出现问题
Call TestLink()
Function TestLink()
    With Window(" ").Dialog(" ")
                        Set oDesc=Description.Create()
                                        oDesc("micclass").value="Link"
                        Set lis=.Page(" ").ChildObjects(oDesc)
                        msgbox lis.count
                        For i=1 to lis.count-1
                                  lis(i).Click
                                 .Page(" ").Image("file name:=goback.gif").Click

                        Next
        End With
End Function
如上代码,我获取了该页面所有的link,然后逐一对每个link点击,现在问题是,为什么我只能点击第一个link,当i=2时,下一个link点击会报语法错误,这是怎么回事?
作者: joykao    时间: 2012-7-27 11:20
你点击了第一个链接时,页面已经跳转了,那个页面上还有你之前的那些链接吗?对象肯定找不到了伐。。。
作者: zthua    时间: 2012-7-27 12:56
.Page(" ").Image("file name:=goback.gif").Click 这句是返回到一开始的页面,所以不会的
作者: zthua    时间: 2012-7-27 13:04
现在51testing 回答问题的人越来越少了
作者: joykao    时间: 2012-7-27 13:48
回复 4# zthua


   把错误的信息贴出来看看。。这样谁知道报了什么错啊?只能在那猜
作者: AntonioNikki    时间: 2012-7-27 13:56
求错误信息,或者是你在自动运行脚本的时候看看是不是能执行第一次返回页面的操作。
作者: zthua    时间: 2012-7-27 15:12
[attach]80213[/attach][attach]80213[/attach][img][attach]80213[/attach][/img] 错误图片 基本内容:General Error:  lis(i).click  就这个错误
作者: zthua    时间: 2012-7-27 15:44
打印出来的错误信息为 [attach]80215[/attach][attach]80215[/attach]  调试的时候 lis 也有对象 ,晕死就是不知道哪里出错了 [attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80215[/attach][attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80216[/attach][attach]80215[/attach][attach]80215[/attach]
作者: zthua    时间: 2012-7-27 15:45
[attach]80217[/attach][attach]80217[/attach]
作者: joykao    时间: 2012-7-27 17:47
回复 9# zthua

好好检查下脚本吧,没有对象识别错误说明脚本有问题啦
作者: zthua    时间: 2012-7-28 15:01
问题已解决 在lis.click()前在加一句Set lis=.Page(" ").ChildObjects(oDesc) 即可,但是为什么在循环的时候,这个对象会识别不了造成 未指定的错误,还是有点疑问,估计是qtp 的问题
作者: SexyCat_1113    时间: 2012-7-28 20:46
对,很多情况下,一旦页面对象有过些许的变化,Set都要重新来一次~
作者: 测试工坊    时间: 2012-7-29 14:10
试一下每次循环时添加等待时间,让网页返回到链接所在的页面后再次进行点击操作。

之所以是未知的错误,是因为childobjects方法返回的是文档对象模型提供的对象,你的click方法也是由文档对象提供的,非qtp封装的click方法,所以qtp无法捕捉这个错误,应该就是找不到对象。
作者: xjwldlover    时间: 2012-8-25 14:12
回复 11# zthua
不是QTP的问题,当你点击一个self类型(在原Page内刷新后的内容,可以百度一下self与blank的区别)的链接时,原来的Page发生了变化,你第一次childobject(desc)获取的对象有的不存在了。你使用不存在的对象来click肯定会报错。
你后来的修改方式,相当于重新载入刷新后的obj,这样就不会为空了,使用click时也就不报错了
作者: 云层    时间: 2012-8-25 17:13
childobject的结果要保存,否则用了就没了,




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2