51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 12111|回复: 37
打印 上一主题 下一主题

[原创] QTP中使用 Exist 的问题

[复制链接]
  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2007-6-9 10:52:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    现在测一个Web程序,现在碰到一个很神奇的问题。sdlkfj4


        我上传一个文件,上传过程中有进度条。上传完成进度条就消失了。


    我就用QTP去判断,直要有进度条就继续等待:

    do Until 进度条.exist(1) = False
        wait(1)
    loop

    后来发现程序一直都在等待,上传完了还在等待。
    Debug才发现   进度条.exist(1) = True 一直都成立。


    原因:进度条和上面的文字只是一个动画,开始上传就为可见;上传完成即为不可见。但一直都是存在的!

    所以,QTP简直太“智能”了!sdlkfj5

       但我使用 进度条.object 方法 来调用它的 Visible 属性 居然也一直都为True。
       获取运行时属性也为True。


    不知是QTP自身的问题,还是我哪里思路有问题?sdlkfj8 sdlkfj8 sdlkfj8


       目前有办法可以解决:不去识别进度条,去识别上传列表。   
    (可以解决部分问题,但列表数据多之后脚本就不好写)

       能识别到进度条 是最好的解决办法, 如何去识别进度条呢?

    本帖子中包含更多资源

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

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

    使用道具 举报

    该用户从未签到

    2#
    发表于 2007-6-9 13:14:28 | 只看该作者
    有没有用同步点试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2007-6-9 14:29:16 | 只看该作者

    同步点

    原帖由 sidneylover 于 2007-6-9 13:14 发表
    有没有用同步点试试



      sdlkfj1   你所说的同步点,指的是?

    [ 本帖最后由 higkoo 于 2007-6-11 16:28 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-6-9 16:36:01 | 只看该作者
    进度条这个可以用同步点来解决的,不用那么麻烦的吧,,查阅一下同步点的相关知识吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-6-9 16:41:21 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-6-9 19:54:02 | 只看该作者
    原帖由 higkoo 于 2007-6-9 10:52 发表
    现在测一个Web程序,现在碰到一个很神奇的问题。sdlkfj4
    do Until 进度条.exi ...

    如果这个进度条一直存在于页面上,而且Visible属性也没有变化。可以再检查和对比一下它在可见和不可见状态时,本身的某项属性有没有发生变化的。
    或者寻求一下开发人员的帮助,看看进度条的显示和隐藏是如何控制的。
    如果存在这样的属性或者状态,把他们作为判断的条件就行了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-6-10 08:13:51 | 只看该作者
    那进度条一直没关(在qtp中),程序都死循环了.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-4-23 14:35
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    8#
    发表于 2007-6-10 10:30:11 | 只看该作者
    用SPY看一下这个对象的属性,包括运行时和运行后的属性值, 我想取属性值取错了,如果是运行完之后这个对象还存在的话,那就用visible这个属性试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
     楼主| 发表于 2007-6-10 13:54:51 | 只看该作者

    回复

    原帖由 wgx198302
    发表
    那进度条一直没关(在qtp中),程序都死循环了.


      是的,程序一直都等下去……   死循环!


    原帖由 yangkinki
      发表
    用SPY看一下这个对象的属性,包括运行时和运行后的属性值, 我想取属性值取错了,如果是运行完之后这个对象还存在的话,那就用visible这个属性试试
    .


    理论上是可行的,但我用Visible试过了,无论是否可见返回值都是True。

    原帖由 winfood
    发表
    如果这个进度条一直存在于页面上,而且Visible属性也没有变化。可以再检查和对比一下它在可见和不可见状态时,本身的某项属性有没有发生变化的。
    或者寻求一下开发人员的帮助,看看进度条的显示和隐藏是如何控制的。
    如果存在这样的属性或者状态,把他们作为判断的条件就行了。


    周一回公司用Spy试试,有想过用其它属性去试,但没想过去查看和比较他们的属性哪里不一样。

    sdlkfj6

    原帖由 yangkinki

    发表

    用SPY看一下这个对象的属性,包括运行时和运行后的属性值, 我想取属性值取错了,如果是运行完之后这个对象还存在的话,那就用visible这个属性试试.


    Visible是不行的了,不过确实要用Spy试一下sdlkfj2
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-6-10 16:28:02 | 只看该作者
    sdlkfj5    可以用检查点来判断
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
     楼主| 发表于 2007-6-10 18:49:23 | 只看该作者

    检查点不行

    原帖由 gotolife 于 2007-6-10 16:28 发表
    sdlkfj5    可以用检查点来判断



       检查点的结果和 上面使用 属性.exist + wait 的结果是一样的。

    我专门用checkpoint 试过,不管是否出现进度条,Checkpoint都为Pass


    还是要看看两者有何不同吧。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-6-10 21:33:01 | 只看该作者
    原帖由 higkoo 于 2007-6-10 18:49 发表



       检查点的结果和 上面使用 属性.exist + wait 的结果是一样的。

    我专门用checkpoint 试过,不管是否出现进度条,Checkpoint都为Pass


    还是要看看两者有何不同吧。




    用Bitmap检查点
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
     楼主| 发表于 2007-6-10 22:08:47 | 只看该作者

    是个动画

    原帖由 gotolife
    发表

    用Bitmap检查点





         那个进度条是个动画, 用图片检查点,应该是失败的吧……   sdlkfj7



      图片检查点只能检查静态图片的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-6-10 22:28:20 | 只看该作者
    原帖由 higkoo 于 2007-6-10 22:08 发表





         那个进度条是个动画, 用图片检查点,应该是失败的吧……   sdlkfj7



      图片检查点只能检查静态图片的



    sdlkfj8 不是image检查点,是Bitmap检查点

    把正常情况下,即该动画不可见的时候,在动画位置进行截图
    点击上传后,可以延迟1秒
    然后进入循环监听,若该位置的动画不可见时,该位置的截图和检查点的截图是一致的,将返回True,否则,动画不消失,截图上会存在进度条,与检查点的截图不一致,将返回False
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-6-11 07:30:16 | 只看该作者

    这种问题.只能用DOM 的方法来解决. 打开这

    个页面的SOURCE CODE 看看有什么规律. 方便的话把SOURCE CODE 贴上来. 我帮你看看.





    原帖由 higkoo 于 2007-6-9 10:52 发表
    现在测一个Web程序,现在碰到一个很神奇的问题。sdlkfj4


        我上传一个文件,上传过程中有进度条。上传完成进度条就消失了。


    我就用QTP去判断,直要有进度条就继续等待:

    do Until 进度条.exi ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-6-11 08:34:37 | 只看该作者

    回复 #15 henhenchen 的帖子

    我认为这"进度条"肯定在一个TABLE 的CELL 中或什么地方. 去判断这个CELL或"什么地方" 的可见性. 应该可以.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-6-11 10:39:11 | 只看该作者
    不是image检查点,是Bitmap检查点

    把正常情况下,即该动画不可见的时候,在动画位置进行截图
    点击上传后,可以延迟1秒
    然后进入循环监听,若该位置的动画不可见时,该位置的截图和检查点的截图是一致的,将返回True,否则,动画不消失,截图上会存在进度条,与检查点的截图不一致,将返回False


    '不好意思,请问怎样可以“循环监听”?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-6-11 11:19:26 | 只看该作者
    原帖由 gotolife 于 2007-6-10 22:28 发表



    sdlkfj8 不是image检查点,是Bitmap检查点

    把正常情况下,即该动画不可见的时候,在动画位置进行截图
    点击上传后,可以延迟1秒
    然后进入循环监听,若该位置的动画不可见时,该位置的截图和检查点的截 ...



    这个方法真实绝了,俺太佩服你了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-6-11 11:23:11 | 只看该作者
    原帖由 higkoo 于 2007-6-9 14:29 发表



      sdlkfj1 请问大侠一个很 羞涩 的问题:  什么是同步点 啊?



    同步点waitproprety 不能解决这个问题——如果网页元素的属性不发生改变

    但是我有点想不通,等待图片从不显示到显示,那么它的visable的属性一定发生了改变,LZ是不是应该询问开发工程师这段代码的问题?

    要不用上面说的BITMAP检查我想也可以啊

    等着LZ的好消息
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    20#
     楼主| 发表于 2007-6-11 11:53:55 | 只看该作者

    被这个问题给征服了

    我尝试了用SPY,发现属性都是一样的。
    而且运行过程,我使用脚本记录它的属性:
    *********************************************************************************
    With .Page("Page").Frame("myFrame")
    x="html tag"
    y="html id"
    z="innertext"
    l="visible"
        a = .WebElement("WebTable").GetROProperty (""&x)
        b = .WebElement("WebTable").GetROProperty (""&y)
        c =  .WebElement("WebTable").GetROProperty (""&z)
        d =  .WebElement("WebTable").GetROProperty (""&l)
    '在点击“上传”按钮前,把控件的属性显示在报告里
    reporter.ReportEvent 0,"点击前", x&"="& a &chr(13)&y&"="& b & chr(13) &z &"="& c&chr(13)&l&"="& d
         .WebButton("上传").Click
       wait(1)
        a = .WebElement("WebTable").GetROProperty (""&x)
        b = .WebElement("WebTable").GetROProperty (""&y)
        c =  .WebElement("WebTable").GetROProperty (""&z)
        d =  .WebElement("WebTable").GetROProperty (""&l)
    '在点击“上传”按钮后,把控件的属性显示在报告里
    reporter.ReportEvent 0,"点击后", x&"="& a &chr(13)&y&"="& b & chr(13) &z &"="& c&chr(13)&l&"="& d  
    End With
    *********************************************************************************
    运行完成,查看报告:

    点击前 html tag=TD
    html id=
    innertext=正在上传请稍等...
    visible=True
    Passed 2007-6-11 - 11:27:35

    点击后 html tag=TD
    html id=
    innertext=正在上传请稍等...
    visible=True
    Passed 2007-6-11 - 11:27:40

    奇怪的是,点击前明明是看不见的,visible应该为false才对。偏偏为true,其它可识别的属性值完全一样。
    真是没办法了……

    [ 本帖最后由 higkoo 于 2007-6-11 13:03 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 15:35 , Processed in 0.092384 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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