51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[求助] 描述性编程中是否可以使用虚拟对象(图)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-3 16:47:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
比如我录制一个C/S的程序,QTP9.5识别不出里面的一个lable(C++Build编写),其它的可以识别,但是如果我新增一个该Lable的虚拟对象,然后再录制就可以了
但是我现在写的脚本是描述性编程。不依靠对象库的,我尝试使用虚拟对象结果不行
使用描述性编程代码如下:
Window("text:=Test","object class:=Tfrm_main").WinObject("object class:=TRzPageControl").VirtualObject("object1").Click
使用虚拟对象录制代码如下:
Window("Test").WinObject("object class:=TRzPageControl").VirtualObject("object1").Click

说明:
Window("Test")为软件主窗体
WinObject("object class:=TRzPageControl")为上面的Lable标签   这个是自动识别出来的,必须加上虚拟对象属性才能识别
VirtualObject("object1").Click为手动添加的虚拟对象

请问大家遇到此类问题怎么解决

[ 本帖最后由 423799223 于 2008-7-3 16:49 编辑 ]

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

16#
发表于 2009-6-10 20:43:23 | 只看该作者
虚拟对象的确不能在描述性编程后面使用,
按照描述性编程的要求,父对象如果描述性编程了,那么子对象也必须描述性编程,
按照这个思路,虚拟对象显然是子对象,而你的父对象已经描述性编程了,所以作为子对象的虚拟对象就不识别了.
我认为比较好的办法是用GetROProperty取得你无法正确识别对象的相对坐标,再单击.
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-6-10 15:15:09 | 只看该作者
原帖由 rayblue 于 2009-6-10 14:25 发表

你用虚拟对象的时候好像QTP是把这个"区域"作为一个对象认出来了,像你说得只不过是根据他的位置信息来确定,但是实际上QTP是无法识别这个区域的,所以用描述性编程无法描述出来

我是说错了,不好意思, 但有一点依然是对的,因为虚拟对象是用坐标来定位对象的,那么你可以直接去操作坐标那块地方 比如虚拟一个按钮,它实现点击操作时是点击其坐标中心 那么在DP中其实是可以直接进行点击的 只不过加了个坐标点 虚拟对象其实只是为了让不识别对象更加可视话
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2009-6-10 14:25:44 | 只看该作者
原帖由 lantianwei 于 2009-6-10 11:35 发表
唉 虚拟对象不就是一个坐标确定的对象吗?你把坐标写在DP中不就行了吗?虚拟对象只是HP为了让其也可以和标准对象一样的管理和展现。。。

你用虚拟对象的时候好像QTP是把这个"区域"作为一个对象认出来了,像你说得只不过是根据他的位置信息来确定,但是实际上QTP是无法识别这个区域的,所以用描述性编程无法描述出来
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2009-6-10 11:35:22 | 只看该作者
唉 虚拟对象不就是一个坐标确定的对象吗?你把坐标写在DP中不就行了吗?虚拟对象只是HP为了让其也可以和标准对象一样的管理和展现。。。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-6-10 11:21:09 | 只看该作者
原帖由 zte_boy 于 2008-7-4 00:18 发表
应该是不可以的,描述性编程只不过是把对象库中的属性用语言形式表述出来
对于不识别的对象,描述性编程应该也是不适用的

是的,描述性编程也只能针对能识别的对象
而一般如果要使用虚拟对象都是在对象无法被识别的情况下
2者是有冲突的
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-7-11 15:22:42 | 只看该作者
先虚拟 加仓库 录制 结束
虚拟对象不支持检查点吧 好象是的.
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-7-11 13:33:42 | 只看该作者
我不知道对于虚对象,winrunner与QTP有多大的区别,现在为止还没接触过QTP.但我觉得楼主这样在描述性编程中使用虚对象,似乎并不可行啊
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-7-7 21:25:06 | 只看该作者
我觉得虚拟对象比较的应该是和图像检查点一样的
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-7-7 17:04:39 | 只看该作者
个人感觉虚拟对象是抓取页面上某个坐标区间做为了虚拟控件,如果这个控件位置变动,哪么就失效,按照这种思路,会有什么帮助呢?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-7-4 17:56:59 | 只看该作者
不行。
你要先虚拟出对象后,再添加到对象库中,然后再去....
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-7-4 10:30:02 | 只看该作者
如果这样  那不是非得使用对象库么?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-7-4 00:18:45 | 只看该作者
应该是不可以的,描述性编程只不过是把对象库中的属性用语言形式表述出来
对于不识别的对象,描述性编程应该也是不适用的
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-7-3 19:23:56 | 只看该作者
Window("Test").WinObject("object class:=TRzPageControl").VirtualObject("object1").Click
是可以运行的  我想知道在描述性编程中怎么解决上面这个问题
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-7-3 17:22:34 | 只看该作者
这个此处识别不了,也没有说清楚到底是哪个地方,还是要试一下,看看能支持不?不过本人我也没有试过
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2008-7-3 17:17:24 | 只看该作者
印象中不可以。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-11 06:16 , Processed in 0.083199 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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