51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2454|回复: 14
打印 上一主题 下一主题

[原创] 使用childobject获取对象属性后,对其操作出现问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-7-27 10:13:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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点击会报语法错误,这是怎么回事?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2012-7-27 11:20:34 | 只看该作者
    你点击了第一个链接时,页面已经跳转了,那个页面上还有你之前的那些链接吗?对象肯定找不到了伐。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2012-7-27 12:56:56 | 只看该作者
    .Page(" ").Image("file name:=goback.gif").Click 这句是返回到一开始的页面,所以不会的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2012-7-27 13:04:14 | 只看该作者
    现在51testing 回答问题的人越来越少了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    5#
    发表于 2012-7-27 13:48:12 | 只看该作者
    回复 4# zthua


       把错误的信息贴出来看看。。这样谁知道报了什么错啊?只能在那猜
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2012-7-27 13:56:11 | 只看该作者
    求错误信息,或者是你在自动运行脚本的时候看看是不是能执行第一次返回页面的操作。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2012-7-27 15:12:49 | 只看该作者
    [img][/img] 错误图片 基本内容:General Error:  lis(i).click  就这个错误

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2012-7-27 15:44:28 | 只看该作者
    打印出来的错误信息为   调试的时候 lis 也有对象 ,晕死就是不知道哪里出错了

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2012-7-27 15:45:36 | 只看该作者

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    10#
    发表于 2012-7-27 17:47:34 | 只看该作者
    回复 9# zthua

    好好检查下脚本吧,没有对象识别错误说明脚本有问题啦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2012-7-28 15:01:16 | 只看该作者
    问题已解决 在lis.click()前在加一句Set lis=.Page(" ").ChildObjects(oDesc) 即可,但是为什么在循环的时候,这个对象会识别不了造成 未指定的错误,还是有点疑问,估计是qtp 的问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2012-7-28 20:46:31 | 只看该作者
    对,很多情况下,一旦页面对象有过些许的变化,Set都要重新来一次~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2012-7-29 14:10:47 | 只看该作者
    试一下每次循环时添加等待时间,让网页返回到链接所在的页面后再次进行点击操作。

    之所以是未知的错误,是因为childobjects方法返回的是文档对象模型提供的对象,你的click方法也是由文档对象提供的,非qtp封装的click方法,所以qtp无法捕捉这个错误,应该就是找不到对象。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2012-8-25 14:12:23 | 只看该作者
    回复 11# zthua
    不是QTP的问题,当你点击一个self类型(在原Page内刷新后的内容,可以百度一下self与blank的区别)的链接时,原来的Page发生了变化,你第一次childobject(desc)获取的对象有的不存在了。你使用不存在的对象来click肯定会报错。
    你后来的修改方式,相当于重新载入刷新后的obj,这样就不会为空了,使用click时也就不报错了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2012-8-25 17:13:10 | 只看该作者
    childobject的结果要保存,否则用了就没了,
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-29 23:43 , Processed in 0.110389 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表