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

04-13 13:12