1. QTP对象TO与RO
TO: test object. 本地对象库里的封装对象
RO:run object. 运行封装对象
和TO、RO相关的几个函数有:
GetTOProperty(“属性名”):取某个属性的值
GetTOProperties():取所有属性的值
SetTOProperty(“属性名”,设置值):设置某个属性的值,如果页面通用元素数量多,可以只录制一个再动态设置index
GetROProperty():取某个属性的值,实际属性值,如页面某个动态元素webedit取其值
通常用法:
SetTOProperty()定义TO,以灵活的操作RO,修改的对象属性是临时的
此处很重要,由于共享对象库经常被人修改,所以在运行时通过SetTOProperty()方法定义此时的对象库TO,使得对象库的属性值处于可控中,以解决:共享对象库的修改和管理问题
例:在对象库里只设置一个按钮对象AnyButton,label特征属性值填任意值,然后用下面脚本执行测试
Browser.Page.Webbutton.SetTOProperty(\"label\", \"**\")
Browser.Page.Webbutton.Click
2. 对象识别方法
1)添加对象库
经常要调用的对象可以将其定义为一个对象变量,方便以后调用
2)描述性编程
使用描述性编程不依赖对象库,通过对象条件描述,在运行时层层查找来识别对象。
使用时机:
a. 界面元素动态出现或动态变化
b. 通用对象
使用逻辑:
查找不从对象库查找,而是运行时创建的临时对象版本
使用提醒:
如果对象结构中某一层开始使用描述性编程,则后续子对象都要用描述性编程识别。
举例:
Browser().Page("text:=**","Name:=**")
:=用于描述属性和属性值,两侧不能有空格
3)Description对象
Description是先定义条件,运行时查找是不是有符合条件的对象
Dim oDesc
Set oDesc=Description.Create
oDesc("micclass").value="link"
oDesc("text").value="Images"
oDesc.Highlight/ Msgbox oDesc.Count '检查对象是否找到
3.页面未加载完导致控件无法识别的问题
1)设置等待时间
wait(20)
2) 页面同步
Browser().Sync '等待网页下方显示完成
Browser().Page().Sync ‘等待网页页面元素完全显示,通常用page同步
4. With用法
With object
statement
End With
对一个对象执行一系列的语句
Edit-->Format-->Apply "with" to script
常用于属性修改:
With Mylabel
.Height=200
.Weight=200
.Caption="测试label"
End With