51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3254|回复: 7
打印 上一主题 下一主题

[求助] QTP描述性编程问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-1 16:33:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近遇到一问题, 如何通过描述性编程把一堆的对象给描述出来.
这里有个例子:

Browser("Browser").Page("Dober EHSS").Link("EHSS").Click
Browser("Browser").Page("Dober EHSS").Link("MSDS").Click
Browser("Browser").Page("Dober EHSS").Link("Label").Click
Browser("Browser").Page("Dober EHSS").Link("Configuration").Click

我想通过下面的语句把上面的四个Link button归到一起描述, 但是报错
Set ButDesc = Description.Create
ButDesc("Class Name").Value = "Link"
msgbox Browser("Browser").Page("Dober EHSS").ChildObjects(ButDesc).count


用其它属性是可以描述出来的,说明语法本身没错;
所以想请教大家, 可以通过link, button这些类名把对象找出来吗?
我好象没成功过, 不知可不可行? 大家给个答案,也好让我死了心

[ 本帖最后由 lhd85 于 2008-7-1 16:44 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-7-1 16:55:19 | 只看该作者
如果要有link,button之类的,是不是要写成如下:
Set ButDesc = Description.Create
ButDesc("micclass").Value = "Link"
我用Class Name也没成功过,但用micclass可以
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-7-1 17:03:05 | 只看该作者
我试了下用micclass确实可以, 但我很奇怪很多人在博客里都用Class Name描述link, button之类的
谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-7-1 17:04:39 | 只看该作者
原帖由 lhd85 于 2008-7-1 17:03 发表
我试了下用micclass确实可以, 但我很奇怪很多人在博客里都用Class Name描述link, button之类的
谢谢了


不奇怪,N多人都是随便copy段代码就放到自己的博客里,试也不试,呵呵,至于CLASS Name为啥不行,等等高手解答吧
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2020-6-28 13:31
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    5#
    发表于 2008-7-1 21:34:10 | 只看该作者
    我在用CLASS NAME的时候也不行  一般都用TITLE或者是其他的属性
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2008-7-1 22:27:50 | 只看该作者
    这个问题我没细研究,只记得以前看过一篇网文,说是micclass是windows内置的属性,也就是任何windows元素如按钮、对话框等都有一个micclass属性,而class name在WINDOWS里是没这个东西的。VBS是一个脚本语言,说到底也只是调用windows的对象来执行各种操作,我就是这么理解micclass 和class name的。
    纯属个人理解,请慎重参考。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2009-5-14 16:13:51 | 只看该作者
    miclass是windows标准控件的内置属性,而class name并不是标准控件的属性之一,而是QTP做的二次封装,也就是说,当对象在QTP记录之后,也就是QTP对对象进行二次封装之后才会有class name这个属性,而当我们使用childobjects,对象并没有被记录到QTP对象库中,也就是QTP还没有对对象进行封装,所以是没有class name这个属性的,我们通过class name这个属性当然找不到了
    或者说当使用childobjects()函数时,它可能并不支持查询条件为class name,所以会报general run error

    今天有人在群里问,然后群友把之前帖子贴出来,自己觉得这样解释可以通了
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2009-5-17 20:59:47 | 只看该作者
    原帖由 xiaoyaoke 于 2009-5-14 16:13 发表
    miclass是windows标准控件的内置属性,而class name并不是标准控件的属性之一,而是QTP做的二次封装,也就是说,当对象在QTP记录之后,也就是QTP对对象进行二次封装之后才会有class name这个属性,而当我们使用childobject ...


    可以这样理解。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 16:36 , Processed in 0.067644 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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