本帖最后由 sanlengjingvv 于 2014-2-21 09:56 编辑
实例:对象库如何工作: 1、添加“百度一下”按钮到对象库(参考“第一个脚本”1-4步),使用Highlight可以定位对象。如图,“百度一下”对象的name属性是“百度一下”。
2、修改“百度一下”对象的name属性为“百度一下修改”,并将“Enable Smart Identification”的Value改为False。再使用Highlight,QTP提示错误“不能在应用中找到选择的对象”。
3、打开IE的开发者人员工具(F12),如图,使用鼠标形按钮选择“百度一下”按钮。选择后HTML代码定位到相应元素。修改“百度一下”按钮元素的value值为“百度一下修改”。
修改前代码: <inputclass="bg s_btn" id="su"onmouseout="this.className='bg s_btn'"onmousedown="this.className='bg s_btn s_btn_h'"type="submit"value="百度一下"/> 修改后代码: <inputclass="bg s_btn" id="su"onmouseout="this.className='bg s_btn'"onmousedown="this.className='bg s_btn s_btn_h'"type="submit"value="百度一下修改"/> 修改后页面:
修改后在对象库中选择“百度一下”对象使用Highlight,QTP又能正确定位了。
4、修改“百度一下”按钮位置,如图:
修改后在对象库中选择“百度一下”对象使用Highlight,能正确定位。
5、复制“百度一下”按钮代码,在页面上再添加一个按钮,修改后如图
修改后在对象库中选择“百度一下”对象使用Highlight,能正确定位。QTP提示错误:有多个符合描述的对象。
添加界面上两个“百度一下”按钮到对象库,现在对象库里有三个“百度一下”按钮对象,对比属性,只有ordinal identifier部分不一样。 界面只有一个按钮时添加的对象Type,Value值是None
界面有两个个按钮时添加的对象Type,Value值分别是”index,1”和”index,2” [img0]http://img.blog.csdn.net/20140120142610953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2FubGVuZ2ppbmd2dg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast[/img]
对象库工作模型: 1、添加对象时:
1.1、QTP Spy被测软件被选中的对象,获取对象的属性集合和对象类型。 1.2、按照Object Identification中相应对象类型的设置,筛选属性集合后存入对象库。 1.3、打开Tools菜单下Object Identification,如图,以WebButton为例。
2、运行时:
2.1、如运行到第二行。
QTP读取对象库中Class是WebButton,name是“百度一下”的对象,获取属性集合(TO)。 2.2、获取被测软件上的对象集合。 2.3、获取第一个对象的属性集合(RO)。对比RO和TO。 2.4、如果属性值不一致,获取第二个WebButton对象的属性集合后对比。如果属性值一致,则触发WebButton对象的方法。
关于录制: 使用录制后可以看出录制自动完成了添加对象到对象库和在编辑区输入脚本(对象、方法和参数)的过程。但录制经常有步骤缺失的问题,比如实际点击某个页面对象A但录制结束后对象库中没有对象A,编辑区也没有相关代码。不补全脚本就Run就会报错了。
使用QTP帮助文档: 在编辑区选中Browser("").Page("").WebEdit("")下的Set 按F1,帮助文档会自动定位到Web> WebEdit Object > Methods > Set Method,帮助文档提供了语法、参数说明、返回类型和例子,查看Example可以看到代码示例。
点击WebEdit Object,可以看到WebEdit对象的说明、方法和属性,
|