[原创]QTP对象库中缺少对象或录制不了脚本的解决方法
问题:
和很多网友一样,初次使用QTP的时候,会遇到QTP工具识别不了的控件,
解决方法:这个时候我们可以使用虚拟对象技术,可以对那些通常不能被QTP所识别的对象进行录制和运行测试。它的方法是把这些不能识别的控件所在的区域定义为虚拟对象,并且映射到某类标准对象。
场景一:
mercury提供QTP测试的官网http://newtours.demoaut.com/index.php上登录的sign-in是个图片,而不是一个button,导致最后回放的时候,QTP不能完成Click操作。
网上搜了资料,方法大多一样,可能都是转自同一人之作,但自己根据实践下,还是花了很多时间,特自己小记一下。
1.打开Tools—Virtual Objects—New Virtual Object…选择button—下一步
2.选择要将你的虚拟对象映射到的标准类(这里有六种对象类供你选择,分别是object,button,table,list,check box,radio button).这里我们要映射一个button对象,所以选择button.单击 下一步
3.单击“标记对象”。选择你要做虚拟对象的区域,拖动鼠标.尽量能覆盖整个你想替代的对象。 (这个操作要尽量注意,保证你选的区域是虚拟对象范围内,千万别超出了区域)
4.在“标识对象使用”框中,选择您希望 QTP 标识和映射虚拟对象的方式。
5.指定虚拟对象的名称和集合。从集合列表中选择,或通过在“集合名”框中输入新名称来新建集合
6.接下来要再来录制一遍对sign-in的操作,如下:
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").VirtualButton("button").Click
(这个步骤在操作的时候,先是把代码删掉,对象库中没有删掉,再次录制的时候没有成功,后来把整个代码和对象库中全部删除后,再次录制成功。不知道是神马原因。)
7.虚拟对象的使用和管理:
1)创建虚拟对象后,可通过选择菜单Tools—Virtual Objects—Virtual Object Manager来进行管理。
2)创建虚拟对象后,在录制脚本时,QTP就会以虚拟对象对应的控件形式来录制测试对象。
场景二:
前几天有个好友的QTP录制脚本的时候,大部分控件都识别不了,利用QTP自带的ObjectSpy识别对象的属性和方法,都是winobject,环境是win7+QTP10.0+IE8
这个环境是很棘手的,今天听她说解决了,这种情况是禁用了BHOManagerClass加载项。在浏览器工具——管理加载项中启动即可。