QTP对象:ORAOM ---- Object Repository automation object model (对象库自动化模型对象)
作用:该对象可以实现在QTP外层,修改对象库并保存
(可以在QTP10.0中运行)
Option Explicit '强制所有变量的显式声明
Dim autoRepository,TOCollection,testobject,i '声明变量
Set autoRepository = CreateObject("Mercury.ObjectRepositoryUtil") '创建ORAOM对象
autoRepository.Load "d:\baidu.tsr" '导入对象库文件
Set TOCollection = autoRepository.GetAllObjectsByClass("Link") '获取所有链接类的对象集合
For i=0 To TOCollection.count-1 '遍历所有测试对象
Set testobject = TOCollection.item(i) '获取测试对象
If autoRepository.GetLogicalName(testobject) = "知 道" Then '判断对象名称为"知道"执行一下操作
testobject.SetTOproperty "text","图 片" '更改对象库的TEXT属性为"图 片"
autoRepository.UpdateObject testobject '更新对象
autoRepository.RenameObject testobject,"图 片" '重命名对象名称
autoRepository.Save '保存对象库
Exit For '退出循环
End If
Next
Set testobject = Nothing
Set TOCollection = Nothing
Set autoRepository = Nothing
'释放所有对象
以上代码的对象释放不可省略,并且要由里向外的释放,否则会造成运行时报错
另外:通过ORAOM方法修改本地存储的tsr格式的对象库后,QTP动态加载对象库OR
'加载不了
'Set OR = CreateObject("Mercury.ObjectRepositoryUtil")
'oOR.Load "E:\下载的东西\QTP Test\Object identify\BD.tsr"
正解:
RepositoriesCollection.Add("E:\下载的东西\QTP Test\Object identify\BD.tsr")