51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4351|回复: 16
打印 上一主题 下一主题

[原创] 关于QTP中ChildObjects()使用时的一点困惑,望高手解惑一下

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-8-20 11:34:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了一段QTP脚本用于识别当前页面上最上层的IE弹出窗口,脚本如下:

Set des=description.Create()
des("Class name").Value = "Window"   
des("enabled").Value =True                                                        '状态为激活的
set dobj=desktop.ChildObjects(des)                                         '在桌面对象中查找
print dobj.count
后发现在增加了  des("enabled").Value =True   以后一个对象都找不到了

进一步实验:

Set des=description.Create()
des("Class name").Value = "Window"
'des("enabled").Value =True
set dobj=desktop.ChildObjects(des)
print dobj.count
For i=0 to dobj.count-1
        If dobj(i).GetROProperty("enabled") Then  '如果对象的enabled属性为True则
print "enabled="&dobj(i).GetROProperty("enabled")&"    "&dobj(i).GetROProperty("foreground")&"    "&dobj(i).GetROProperty("focused")&"       "&i&"    "&dobj(i).GetROProperty("text")
        End If
Next

这时可以找到我所期望的对象

这样我就困惑了 为什么在ChildObjects筛选时我增加了enabled属性一条都找不到
而在筛选后用IF过滤enabled属性 就可以找到对象了


PS:我写上面的脚本是为了能得到当前单Browser下IE有多层模态窗口弹出时获得最顶层页面对象,以便直接操作最顶层页面中内容,目前想识别最顶层的页面,如果有好的方法还请高手指点指点 呵呵
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-8-20 14:17:38 | 只看该作者
这个我觉得应该是QTP的bug
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2010-8-20 16:44:19 | 只看该作者
    请楼主把  des("enabled").Value =True
    改为  des("enabled").Value ="True"
    后再试试。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2010-8-23 09:47:11 | 只看该作者

    回复 3# 的帖子

    des("enabled").Value ="True"

    尝试过了,还是一个对象都找不到,
    不知道这个是不是QTP的BUG 或者 还是我的用法不对~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-8-23 09:58:35 | 只看该作者
    不会啊,我试过可以啊,LZ不会用的是PJ版的吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2010-8-23 10:35:12 | 只看该作者
    可以用的,true  ,  -1  都行
    可能是系统一些自启动被关掉了,比如 shhook class之类的影响了,或者版本问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2010-8-23 15:55:56 | 只看该作者
    楼主还是用SPY自己看一下,runtime属性里的到底有没有enable属性,如果有它的值是不是true还是1或者-1什么的,如果都没错,那就没办法了! 
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2010-8-27 08:33:14 | 只看该作者

    回复 5# 的帖子

    自己研究学习 用的是10.0 PJ版  这个PJ版会导致这样的问题么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-8-27 10:17:47 | 只看该作者
    版本问题,9.2版本能正常运行,得出结果,10.0的就不行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2010-8-27 10:19:42 | 只看该作者
    des("enabled").Value =True 修改为:des("enabled").Value ="-1"   '注:-1为True,0为 False
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2010-8-27 10:24:02 | 只看该作者
    你在10.0版本上试过?10.0上还是不行的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2010-8-27 13:55:00 | 只看该作者

    回复 10# 的帖子

    果然 des("enabled").Value =True 修改为:des("enabled").Value ="-1"   '注:-1为True,0为 False

    这样改完以后 找到的有效对象果然都是一样的       enabled     -1为True,0为 False  这个很奇妙啊
    我们一般的情况下不是 0为False 其他值为True么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-8-27 16:06:13 | 只看该作者

    回复 1# 的帖子

    通过标题呢,若标题固定,可以通过标题识别这个窗体。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2011-5-12 11:01:26 | 只看该作者
    学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2017-2-4 09:49
  • 签到天数: 145 天

    连续签到: 1 天

    [LV.7]测试师长

    15#
    发表于 2011-5-13 09:06:02 | 只看该作者
    顶下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-2-24 17:10
  • 签到天数: 191 天

    连续签到: 1 天

    [LV.7]测试师长

    16#
    发表于 2011-5-13 14:58:54 | 只看该作者
    看帖必回
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2011-5-13 15:37:48 | 只看该作者
    学习受教了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-20 06:23 , Processed in 0.072927 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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