51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3492|回复: 15
打印 上一主题 下一主题

[原创] 描述性编程中的疑问?来自xiaonan的blog

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-2-6 14:56:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看过xiaonan的blog中关于描述性编程,有些不明白的地方
1:Dialog("text:=Login").WinEdit("attached text:=Agent Name:").Set
2:Dialog("text:=Login").WinEdit("attached text:=Password:").SetSecure "4414d23c42046da1ea3a895f1518b9c476b2b225"
3:Dialog("text:=Login").WinButton("text:=OK").Click
4:Window("regexpwndtitle:=Flight Reservation").close
第一行中的dialog后面只有“text”,而winedit后面是“attached text”。什么时候要“attached”?什么时候不需要?
第四行中的window后面是“regexpwndtitle” 为什么?不可以用“text”吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-2-6 15:31:14 | 只看该作者
我这里取的只是对象库中属性及属性值.这边所要描述的是该对象的属性,每个对象的属性是不一样的.不是每个对象都有text属性.而且要给予能直接描述这个对象的属性放到脚本中,QTP在执行脚本的时候才能准确的识别到该对象.我建议你先录制这么一段脚本,然后打开对象库,和这段脚本对比一下,你就知道为什么这里取了这么些对象属性了.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-2-6 17:04:25 | 只看该作者
如果我不先录制脚本,我怎么知道该对象有没有这个属性呢?

Window("航班预订").WinMenu("Menu").Select "分析(A);报告(R)..."
Window("航班预订").WinMenu("Menu").Select "文件(F);退出(X)"

如何取得menu对象的属性。如果用描述性编程,这两条语句该如何写?谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-2-6 17:31:04 | 只看该作者
在这两个语句中WinMenu使用"Menu"来标识的
如果你脚本写多而且也经常查看对象仓库的话,你应该就清楚"Menu"是WinMenu的哪个属性了
然后按照描述的语法写就可以了
try
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-2-7 08:49:12 | 只看该作者
可以借用object spy等工具来查看对象属性
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-2-7 09:25:10 | 只看该作者
在你录制完的脚本上右键察看对象属性也一样可以看见该对象的属性的:)
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-2-7 10:07:22 | 只看该作者
描述性编成就是在不依靠对象库也能正确标识对象的一个手段 ,利用对象属性做标识,如果属性不唯一则取多个属性保持它唯一标识。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-7-13 15:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2007-2-8 16:20:36 | 只看该作者
    这是控件的属性决定的,不用你管
    object spy会告诉你控件有哪些属性
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-2-8 23:36:13 | 只看该作者
    一般是录制完以后,根据对象库中的属性,修改脚本,生成描述性脚本的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2007-2-9 09:47:21 | 只看该作者
    原帖由 rivermen 于 2007-2-8 16:20 发表
    这是控件的属性决定的,不用你管
    object spy会告诉你控件有哪些属性


    我真的希望你能亲自录一下qtp自带的飞机票代理系统。看看怎么用spy抓到menu属性的。我抓了n次都没有抓到(拜托!不要再给我讲怎么样用spy了)
    即使我抓到了menu的属性。如果我不管的话,怎么描述性编程?

    [ 本帖最后由 yhzmw 于 2007-2-9 09:50 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2007-2-9 09:48:58 | 只看该作者
    原帖由 tails82 于 2007-2-8 23:36 发表
    一般是录制完以后,根据对象库中的属性,修改脚本,生成描述性脚本的


    原来描述性编程是这个样子来的啊?我还以为是直接写的呢。
    我另外有点疑问:如果已经录制完成了,还干吗要用描述性脚本呢?有什么好处?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-2-9 10:30:21 | 只看该作者
    原帖由 tails82 于 2007-2-8 23:36 发表
    一般是录制完以后,根据对象库中的属性,修改脚本,生成描述性脚本的


    呵呵,这是在学习中才这样用法.





    原帖由 yhzmw 于 2007-2-9 09:48 发表


    原来描述性编程是这个样子来的啊?我还以为是直接写的呢。
    我另外有点疑问:如果已经录制完成了,还干吗要用描述性脚本呢?有什么好处?


    在我的文章中也提到过了,描述性编程能让QTP脱离对象库来执行脚本.在某些特殊应用的时候,可能就更方便点.比如:要针对某个对象的参数化等等.而且描述性脚本因为脱离了对象库,所以增加了脚本的可移植性.同时脚本也更具有可读性.当然也给手工写脚本提供了一个平台.

    你现在的最大问题是对每个对象的属性及属性值还不熟悉,所以不知道如何去选择合适的属性做为描述性属性.随着对QTP不断学习和应用,先从录制脚本开始,慢慢深入.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2007-2-9 10:41:57 | 只看该作者
    楼上xiaonan解答了我的最核心的问题。谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-2-9 10:48:15 | 只看该作者
    还是从录制脚本着手吧,
    走路都不稳呢,先别急着跑。嘻嘻!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-2-9 11:00:04 | 只看该作者
    最好的期望结果就是,QTP中只有一个调用脚本的语句,剩下的都是脚本完成的~~
    用工具的最高境界就是脱离工具......
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-2-26 16:33:44 | 只看该作者
    深,想学习一直徘徊,没有学到什么程度
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 02:22 , Processed in 0.081385 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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