51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2655|回复: 0
打印 上一主题 下一主题

[原创] QTP无法录制对象的解决方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-9-7 12:29:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于某些控件无法录制的解决办法:

1.        采用坐标定位的方法来录制,需要在录制的过程中更改录制方法(Automation—>Low Lever Recording)。不过因为页面样式经常在变化,这种方法有局限性


2.        更改QTP系统参数设置
在录制的过程中,QTP默认的录制模式为basic,这种录制模式在很多情况下不能满足录制要求,需要进行特殊的设定。不过用这种方法必须知道不能录制的是什么控件
流程为:
a. 启动QTP
b. 进入tools—>web event recording configuration—>custom settings弹出对话框
左边(web obiect)是对象列表,它包含了QTP所能识别的所有控件,也可以通过object—>add添加object控件。Object控件右边是跟控件相对应的实例,它包含了相对应的鼠标录制的属性,可以通过event—> add来添加event控件。

举例:QTP对数据魔方的弹出式日历组件是不能录制脚本的,通过tools—>objects spy查看知此处为Webelement控件,在上述对话框中找到Webelement控件,对其增加相应的event控件(此处添加的是onclick,Listen状态改为always),即可解决此类控件不能成功录制脚本的问题。

3. 使用描述性编程;
如果Web对象没有被添加到对象库中,或者通过该Web对象的标识QTP无法识别该对象,就可以通过直接在脚本中输入编程描述的方式来解决。

语法为:
TestObject("PropertyName1:=PropertyValue1", "..." ,"PropertyNameX:=PropertyValueX"}
其中TestObject 为 测试对象的类;PropertyName:=PropertyValue - 测试对象的属性及其值。各个property:=value 对之间应用逗号和引号分开。



4.使用虚拟对象;
可以使用虚拟对象解决无法识别对象问题,步骤为:
使用虚拟对象,将不能成功录制的对象设为一个对象,点击tools---virtual objects---new objects,弹出对话框,再点击next;
在class处将不能录制的对象设置为QTP能识别的对象,再点击next;
点击弹出对话框中的mark object按钮,页面会最小化,鼠标会变成”+”,你可以使用”+”来限定虚拟对象的范围选好后,会在width height中显示虚拟对象的高和宽,再点击next;
选择entre parent hIErarchy 或者 parent only点击next;
设定虚拟对象的名称,以及收藏的名字,点击finish,虚拟对象添加完成;
tools---virtual object--- virtual object manager可以对虚拟对象进行管理;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 18:37 , Processed in 0.070634 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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