51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] QTP对象库中的对象重复

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-6-28 17:12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用QTP录制一个windows application的对象,生成对象库和脚本后,可以识别并且运行。但是我们重启系统后,QTP就不能识别到该对象了,再重新添加或者录制对象库会发现,所关联对象库中存在的对象又重新生成了同样的对象,只是命名不同而已(就好像之前的对象是button,你重启录制系统后对象库里相同的控件对象就是button_2了,而且它还不识别button这个对象)。这是为什么啊?难道只能重新修改对象库或者脚本了?望高手解答~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-6-28 17:31:19 | 只看该作者
我也帮你顶,,,,
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-6-28 17:39:21 | 只看该作者
不要同时运行两个被测试应用程序
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-6-28 19:49:36 | 只看该作者

回复 3# 的帖子

都没有同时运行俩个应用程序啊。。。继续等待~
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-6-28 21:10:24 | 只看该作者
每次运行windows application的对象的button属性不一致引起的
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-6-29 10:26:36 | 只看该作者

回复 5# 的帖子

多谢回答,那有什么办法避免或者什么建议吗?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-6-29 10:52:54 | 只看该作者
可以在对象库里面对对象的名称使用正则表达式,比如说button,下一次变成button1,你就将对象名变成button[0-9]+。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-6-29 11:31:32 | 只看该作者

回复 7# 的帖子

不错不错 顶下
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-6-29 11:34:01 | 只看该作者

回复 7# 的帖子

属性改变了 QTP运行应该还是不能识别吧
还是用描述性..比较好
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-6-29 11:35:26 | 只看该作者
诊断:windows标准控件很可能会用到window id属性,而这个属性往往是变化的,每次启动应用程序值都可能会不一样。
方案:不使用会变化的属性来识别对象,改用其它相对稳定的属性
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2010-6-29 12:01:44 | 只看该作者

回复 10# 的帖子

感谢你的解答,但是能不能举个例子来说明下你这个方案的实现呢?本人是个菜鸟,对QTP理解不是太深~多谢大侠了~

[ 本帖最后由 wangchao6656 于 2010-6-29 12:25 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2010-7-1 09:12:04 | 只看该作者
顶起看看有没有更详细的解答~
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2010-7-1 11:01:09 | 只看该作者
名字变化应该没有影响,关键看属性变了没有。如果是像楼上所说是由于变化属性引起的,例如window id ,去掉变化属性,找唯一属性。或者是用描属性语言来确定对象。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2010-7-1 13:26:52 | 只看该作者
id变化的不叫windows标准控件,如今会变化的通常是CLR环境下开发的
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2010-7-5 14:45:15 | 只看该作者
原帖由 hsjzfling 于 2010-6-29 11:35 发表
诊断:windows标准控件很可能会用到window id属性,而这个属性往往是变化的,每次启动应用程序值都可能会不一样。
方案:不使用会变化的属性来识别对象,改用其它相对稳定的属性



windows  标准控件运行时应该不变,这也是很多测试本地化软件项目中选择winID作为属性的原因
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2010-7-5 16:13:29 | 只看该作者
回复11楼的,10楼说的具体操作步骤应该是这样的:

我OR (object repository)中某个对象的属性如附件.

1. 打开一个ie运行你的系统,然后用spy看网页上该对象的各个属性值,你看和这里的属性比较,哪个值是不一样的,(或者多次打开ie重新运行,再spy,比较每次的属性值) 不一样值的属性就不要加入OR中了.
2. 具体删除办法是,选中你要删除的属性,然后点击"X"按钮,就能将它从OR中删除,下次运行的时候就不检查这个属性了.
3. 如果删除某一些属性后,运行时报无法唯一确定这个object的时候,你可以点击”+”按钮,去里边找可以唯一确定这个object的属性添加到对象库中.
我是这么做的解决了我的问题.你可以试试看.

[ 本帖最后由 liuliu022004 于 2010-7-5 16:14 编辑 ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2010-7-6 16:18:37 | 只看该作者
拜谢楼上指点。。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-11 02:17 , Processed in 0.095488 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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