51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2738|回复: 6
打印 上一主题 下一主题

[原创] QTP中采用spy object的两种方式识别对象,结果为何不同

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-15 09:20:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现象是这样的:我要得到某个统计页面中某个td的数据,该数据是动态的,当增加一条记录后,这个数据就要相应地增加1。首先我对这个数据设置了standerda checkpoint ,spy object中采用 run-time object perporty,然后输出这个td的innertext属性的值:如下代码:

‘Browser("用人单位员工劳动合同管理系统").Page("用人单位员工劳动合同管理系统_5").WebElement("用人单位员工劳动合同管理系统").Check CheckPoint("用人单位员工劳动合同管理系统")
Dim a
Browser("用人单位员工劳动合同管理系统").Page("用人单位员工劳动合同管理系统_5").WebElement("用人单位员工劳动合同管理系统").GetROProperty("innertext")
msgbox(a)

这时的输出的结果是正确的,跟table中这个td的值是一致的。

但如果spy object中采用 test object perporty ,同样的代码,msgbox输出的结果就是一个空值(不是null而是空)

我是这样理解的:run-time object perporty是显示对象自身的属性和属性值,而test object perporty是显示该对象封装好的属性和属性值。照这样下去,采用这两种方式的输出结果应该一样呀
请高手指点一下

[ 本帖最后由 Erin_gy 于 2007-8-15 09:39 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-8-15 09:30:11 | 只看该作者
    1,spy object 只能查看对象的属性,包括Run-time Object Properties and Test  Object Properties。你无法使用它去录制
    2,在spy object中采用 test object perporty后, 相应的代码是什么? 放上来看看。
    3,你的问题本质上是 Run-time Object Properties and Test  Object Properties的区别。在论坛上有相关的帖子,你可以搜索一下
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2007-8-15 09:31:44 | 只看该作者
    我想 下面的这三行代码 应该是 楼主自己写的吧:
    Dim a
    Browser("用人单位员工劳动合同管理系统").Page("用人单位员工劳动合同管理系统_5").WebElement("用人单位员工劳动合同管理系统").GetROProperty("innertext")
    msgbox(a)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2007-8-15 09:37:52 | 只看该作者

    回复 #2 walker1020 的帖子

    在spy object中采用 test object perporty后,代码:
    Browser("用人单位员工劳动合同管理系统").Page("用人单位员工劳动合同管理系统_5").WebElement("用人单位员工劳动合同管理系统").Check CheckPoint("用人单位员工劳动合同管理系统")
    Dim a
    Browser("用人单位员工劳动合同管理系统").Page("用人单位员工劳动合同管理系统_5").WebElement("用人单位员工劳动合同管理系统").GetROProperty("innertext")
    msgbox(a)
    对于:Run-time Object Properties and Test  Object Properties的区别,我写错了,帖子中已经修改。
    spy object的确只是记录和识别对象的,因为在添加checkpoint后,需要spy object记录相应的对象,因此我这里分别采用两种不同的方式来对比结果
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2007-8-15 09:50:03 | 只看该作者

    回复 #3 walker1020 的帖子

    对,就是自己写的。我的目的就是想看看WebElement("用人单位员工劳动合同管理系统")的innertext属性值
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-8-15 10:46:59 | 只看该作者
    这帖子看得乱糟糟的,没看出LZ你两种方式的脚本有啥差别,好像完全一样的啊!

    我猜想LZ可能是错误的以为GetROProperty取得的是run-time object perporty,GetTOProperty取的是test object perporty。

    其实GetROProperty和GetTOProperty取的都是封装接口(test object perporty)
    GetROProperty取的是实际对象的封装接口
    GetTOProperty取的是仓库对象的封装接口
    WebElement(...).object.innertext取的才是实际对象的自身接口(run-time object perporty)

    QTP里的Test Object/Run-time Object的概念太容易让人混淆了!
    它既用来区分仓库对象和实际对象,又用来区分对象的封装接口和自身接口。

    我有个帖子《QTP识别和操作对象的原理》 对此有详细的说明

    http://bbs.51testing.com/viewthread.php?tid=13554&page=1#pid369327
    http://bbs.51testing.com/viewthread.php?tid=13554&page=1#pid425533
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2007-8-15 11:05:41 | 只看该作者

    回复 #6 yabest 的帖子

    谢谢您的回复,也感谢walker1020版主的回复!
    确实对test object 和run-time object 的理解有误。
    在向对象仓库中添加对象时采用了两种方式来识别对象(即:test object property和run-time object property),使其输出某个td的innertext属性值。这两种方式的代码完全一样,但输出结果不一样(一个输入了正确值,另一个却输入空),感到很奇怪。
    我再试试
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-15 02:58 , Processed in 0.105893 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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