清文 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