如何使用vb脚本自动将对象添加到对象存储库?

时间:2013-02-11 14:13:54

标签: object vbscript

是否可以使用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")

以上代码将获取日志文件中显示的链接名称,并在应用程序/网页中突出显示。请指导我如何将该链接(对象)的属性添加到对象存储库。

谢谢!

2 个答案:

答案 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>

然后使用SetTOPropertyChildObjects返回的值中创建相关说明。

请参阅此question for more details

我不相信有一种方法可以动态添加测试对象。 ObjectRepositoryUtil.AddObject在其文档中有此内容:

  

您可以使用此方法添加从其他对象存储库中检索的对象的副本。

您可以使用测试中提取的属性通过XML动态创建存储库,但我认为这比它的价值更令人烦恼。

在这种情况下,最好使用描述性编程。

有关详细信息,请参阅此LinkedIn thread