51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6534|回复: 21
打印 上一主题 下一主题

[原创] 脚本执行循环第二次时,QTP对控件不能识别

[复制链接]
  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2007-1-25 11:10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    我有一录制的脚本,包含的动作有:Action1:用户A登录,添加记录AA;Action2:别的用户登录(不包含用户A),对记录AA发表评论。在Actiona2中,设置了循环,可以让N个用户,对该记录进行评论(一个用户只能对同一记录作一次评论操作)
    当Action2在第一次循环时,脚本可以正确执行,没有错误,当进行第二次循环时,QTP会报错,如图片1,请问为什么会出现该现象,如何才能解决?

    [ 本帖最后由 xueboy118 于 2007-1-25 11:14 编辑 ]

    本帖子中包含更多资源

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

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2007-1-25 11:23:37 | 只看该作者

    回复 #1 xueboy118 的帖子

    从你贴得图片上来分析,可能是“活动召集”这个对象的问题。你可以先按照错误信息来修改一下“活动召集”对象的属性,然后再试试。如果你不介意的话,可以把Action 2的脚本贴出来看看,我怀疑是脚本的问题。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2007-1-25 11:29:34 | 只看该作者
    下面的脚本是Action2的所有代码

    For i=1 to 30
    Dim n
    n="AAA"+cstr(i)
    Browser("AAAA").Page("AAAA").WebEdit("lusername").Set n
    Browser("AAAA").Page("AAAA").WebEdit("lpassword").SetSecure "45a74a3e68fa724c6fb1ecf819e3620bff29"
    Browser("AAAA").Page("AAAA").WebButton("WebButton").Click
    Browser("AAAA").Page("BB").Link("活动召集").Click
    Browser("AAAA").Page("BB_2").Link("活动召集的参与测试").Click
    Dim t,k
    t=1
    t=i mod 2
    If t=0 Then
    k="我喜欢,呵呵 "
    Browser("AAAA").Page("活动添加%%B1 - 活动召集 - BB").Link("送支鲜花支持").Click
    Browser("AAAA").Page("活动召集的参与测试").WebList("commentType").Select "报名参加"
    Browser("AAAA").Page("活动召集的参与测试").WebEdit("commentContent").Set n+":我要参加活动,"+k
    else
    k="不喜欢"
        Browser("AAAA").Page("活动添加%%B1 - 活动召集 - BB").Link("扔个鸡蛋反对").Click
    Browser("AAAA").Page("活动召集的参与测试").WebList("commentType").Select "随便说说"
    Browser("AAAA").Page("活动召集的参与测试").WebEdit("commentContent").Set n+":我不参加活动,"+k
    End If
    'Browser("AAAA").Page("活动召集的参与测试").WebList("commentType").Select "报名参加"
    Browser("AAAA").Page("活动召集的参与测试").WebButton("提交").Click
    Browser("AAAA").Page("活动召集的参与测试_2").Link("退出").Click
    Browser("AAAA").Page("AAAA").Sync
    Next


    脚本应该是没有问题的,如果有问题,那么循环第一次的时候就因该执行不下去,事实上是在循环第二次的时候才报错的

    [ 本帖最后由 xueboy118 于 2007-1-25 11:31 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-1-25 11:42:17 | 只看该作者

    回复 #3 xueboy118 的帖子

    你是不是在“Browser("AAAA").Page("BB").Link("活动召集").Click“ 这一句会报错?
    第二次循环的时候你的开始页面时候是登陆界面?
    你第二次有没有登陆成功?
    你能不能把Link("活动召集")的属性从对象库中贴出来?
    谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2007-1-25 11:58:07 | 只看该作者
    我的脚本是在“Browser("AAAA").Page("BB").Link("活动召集").Click”这一句上报错,这一步操作,是在用户登录之后,才进行的操作
    下面的两张图片,是我在对象库中的截图,我把该控件的主要属性的图都截了出来

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-1-25 12:10:31 | 只看该作者
    Link("活动召集")的对象不唯一,你自己在对象属性里面找找看。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
     楼主| 发表于 2007-1-25 12:32:49 | 只看该作者
    风过无息,你所谓的Link("活动召集")的对象不唯一,是不是说该对象可能在对象库中不止存在一个,而是存在多个?我刚查过对象库了,在对象库中,该对象只有一个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-1-25 12:57:05 | 只看该作者
    不是对象库里不唯一,是你回放时候的页面上面的对象不唯一。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
     楼主| 发表于 2007-1-25 14:04:05 | 只看该作者
    回放的时候,页面的"活动召集"这个链接对象,只有一个,不过类似的连接对象,如“花店一般活动召集20 ”等,此类链接对象到是有好多个,因该喝这些对象每有什么关系吧?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-1-25 16:49:59 | 只看该作者

    回复 #5 xueboy118 的帖子

    你好,看来是你的对象的问题。我个人觉得你可以用动态识别来试试。
    具体方法如下:
    “Browser("AAAA").Page("BB").Link("text:=活动召集","Class Name:=XXXX"....).Click”
    找一些能唯一识别这个Object的属性放在括号中。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
     楼主| 发表于 2007-1-26 10:01:49 | 只看该作者

    回复 #10 m_2 的帖子

    你好,我用你说的方法试了一下.还是不行,可能是我描述 有问题吧,我对QTP的描述性编成还不是很熟,下面是我在案脚本中使用的代码,请帮我看看,是否有错,谢谢.
    Browser("AAAA").Page("BB").Link("name:=","html tag=A","url:=http://192.168.1.187:8080/activity/").Click
    QTP执行到这里时,提示"对象不支持此属性或方法: Browser("AAAA").Page("BB").Link("name:=","html tag=A","url:=http://192.168.1.187:8080/activity/").Click"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-1-26 10:07:14 | 只看该作者
    可以在执行前加个预处理过程,把所有已打开的浏览器都关闭
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
     楼主| 发表于 2007-1-26 10:10:00 | 只看该作者

    回复 #12 sidneylover 的帖子

    怎么加,没有加过,能否具体说明一下?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-1-26 10:21:02 | 只看该作者
    Set loginwin=description.Create()
    loginwin("regexpwndtitle").value="Microsoft Internet Explorer" '可以根据你IE的属性来选择
    Set child=desktop.ChildObjects(loginwin)
    msgbox child.count
    For i=1 to child.count
              child(i-1).close
    Next
    加到循环里最前面
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
     楼主| 发表于 2007-1-26 10:37:28 | 只看该作者

    回复 #14 sidneylover 的帖子

    你给的代码,我看的不是很懂,但是我明白你的意思,通过for循环来关闭所有的窗口,然后再执行我的脚本,以确保只有一个窗口,对吧?可问题是,我在执行脚本前,关闭所有的窗口,执行脚本时,还会报相同的错误。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-1-26 11:20:50 | 只看该作者

    回复 #11 xueboy118 的帖子

    你好,你的代码有问题。
    Browser("AAAA").Page("BB").Link("name:=","html tag=A","url:=http://192.168.1.187:8080/activity/").Click
    在属性name中为什么没有输入值呢?是本来没有值吗?如果没有值得话, 就不要用这个属性拉,换一个啦。
    希望你能解决你的问题。sdlkfj2
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-5-4 14:23
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
     楼主| 发表于 2007-1-26 11:40:34 | 只看该作者

    回复 #16 m_2 的帖子

    你好,是我把脚本的代码搞错了,不果经过修正后,脚本如下
    Browser("AAAA").Page("BB").Link("name:=活动召集","html tag:=A","url:=http://192.168.1.187:8080/activity/").Click
    可是当脚本执行第二次循环的时候,还是会报相同的错误
    用SPY察看该对象,有没有找到可用的对象属性
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-1-26 12:02:46 | 只看该作者
    我也碰到类似的问题,不过是根本识别不出对象。。。。。又没可用的对象属性。。。。埃。。。。关注楼主,希望大家可以解决这样的问题~~~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-1-26 14:20:42 | 只看该作者
    学习~~   sdlkfj5
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-1-26 16:45:46 | 只看该作者

    回复 #17 xueboy118 的帖子

    你有没有尝试换换其他属性?
    把第二次的Object属性和第一次的Object属性对比一下,查查有什么不同?
    还有你可以从Page一层开始,定位Object.
    比如:
    Browser("AAAA").Page("name:=BB","Class Name:=xxx").Link("name:=活动召集","html tag:=A","url:=http://192.168.1.187:8080/activity/").Click

    我个人认为"html","url" 属性不好。试试其他的。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 22:34 , Processed in 0.084949 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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