是否可以使用VBScript自动将对象添加到对象存储库?
假设我的网页/应用程序中包含链接列表。这会耗费时间,当我手动添加对象时,我试图自动将对象添加到存储库。但无法继续,因为我不知道如何在QTP中激活对象存储库(在运行时)。
以下是我尝试的代码:
Function Objects_Count(myObject)
Dim Objects
Set Objects=Description.Create
Objects("micclass").value=myObject
set obj=Browser("title:=.*").Page("title:=.*").ChildObjects(Objects)
For i=0 to obj.count-1
'msgbox i
c=obj(i).getroproperty("name")
If obj(i).Exist(1) Then
obj(i).highlight
End If
Print c
Next
End Function
Call Objects_Count("link")
以上代码将获取日志文件中显示的链接名称,并在应用程序/网页中突出显示。请指导我如何将该链接(对象)的属性添加到对象存储库。
谢谢!
答案 0 :(得分:2)
为了操作对象存储库,您需要Mercury.ObjectRepositoryUtil
对象,load
现有对象存储库,并使用AddObject
向其添加对象。
Set myRepository = CreateObject("Mercury.ObjectRepositoryUtil")
myRepository.Load "C:\QuickTest\Tests\Flights.tsr"
myRepository.AddObject myLink, Browser("B").Page("P"), "myLinkName"
你必须稍微玩一下才能让它适应你的情况。使用QTP帮助找出ObjectRepositoryUtil的所有可访问方法/属性,只需在Index
选项卡下面的搜索框中输入“ObjectRepositoryUtil”。
答案 1 :(得分:2)
修改:您需要按ProgId而不是micclass
创建测试对象。</ p>
然后使用SetTOProperty
从ChildObjects
返回的值中创建相关说明。
请参阅此question for more details。
我不相信有一种方法可以动态添加测试对象。 ObjectRepositoryUtil.AddObject
在其文档中有此内容:
您可以使用此方法添加从其他对象存储库中检索的对象的副本。
您可以使用测试中提取的属性通过XML动态创建存储库,但我认为这比它的价值更令人烦恼。
在这种情况下,最好使用描述性编程。
有关详细信息,请参阅此LinkedIn thread。