1

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

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

谢谢!

4

2 回答 2

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”。

于 2013-02-12T07:34:02.667 回答
2

编辑:您需要通过其ProgId而不是其micclass.

然后使用SetTOProperty为了从返回的值创建相关描述ChildObjects

有关详细信息,请参阅此问题。


我不相信有一种方法可以动态添加测试对象。ObjectRepositoryUtil.AddObject在它的文档中有这个:

您可以使用此方法添加从不同对象存储库检索到的对象的副本。

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

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

有关更多详细信息,请参阅此LinkedIn 线程

于 2015-05-25T12:17:04.707 回答