清文 2012-08-10
ORAOM:Object Repository automation object model(对象库自动化模型对象)
本文脚本不需要QTP加载对象库,就能读取对象库中的内容,包括对象名称和各个属性值。
'创建ObjectRepositoryUtil对象
Set ObjRepoUtil = CreateObject("Mercury.ObjectRepositoryUtil")
'加载对象库tsr文件
ObjRepoUtil.Load "D:/对象库.tsr"
'打印全部对象属性值
PrintObjInfo ObjRepoUtil, "ROOT", ""
Set ObjRepoUtil = Nothing
Sub PrintObjInfo(ByRef ObjRepoUtil, ByRef Parent, ByVal tab)
If TypeName(Parent)="String" Then
print Parent 'ROOT对象不打印属性
Else
tab = tab & vbTab
'获得当前对象所有属性,并组装成字符串
Set props = Parent.GetTOProperties
For j=0 to props.count-1
propstr = propstr & "," & props(j).name & ":=" & props(j).value
Next
'打印当前对象名称和属性值
print tab & ObjRepoUtil.GetLogicalName(Parent) &",Class:=" & Parent.GetTOProperty("class name") & propstr
Set props = Nothing
End If
'获得当前对象的所有子对象
Set chdobj=ObjRepoUtil.GetChildren(Parent)
If chdobj.count > 0 Then
'有子对象则递归调用本函数,输出子对象信息
For i=0 To chdobj.count-1
PrintObjInfo ObjRepoUtil, chdobj.item(i), tab
Next
End If
Set chdobj=Nothing
End Sub