使用ORM对象库自动化模型来读取对象库TSR中的信息

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

相关推荐