Angularjs 无法使用描述性编程识别对象,但可以使用描述对象进行识别

Angularjs 无法使用描述性编程识别对象,但可以使用描述对象进行识别,angularjs,qtp,hp-uft,Angularjs,Qtp,Hp Uft,在我的应用程序中,我必须搜索返回一行或多行数据的字母数字id。在每一行上都有一个链接,我必须单击第一个链接 不幸的是,它没有任何唯一的属性,因此我无法将其添加到OR。相反,我使用了如下的描述性编程 'returns false page.Link("class:=ng-binding","innertext:=AplhaID","html tag:=A").Exist QTP无法识别具有上述代码的对象。因此,我尝试使用下面的代码之类的描述对象 Set oDesc = Description.O

在我的应用程序中,我必须搜索返回一行或多行数据的字母数字id。在每一行上都有一个链接,我必须单击第一个链接

不幸的是,它没有任何唯一的属性,因此我无法将其添加到OR。相反,我使用了如下的描述性编程

'returns false
page.Link("class:=ng-binding","innertext:=AplhaID","html tag:=A").Exist
QTP无法识别具有上述代码的对象。因此,我尝试使用下面的代码之类的描述对象

Set oDesc = Description.Object
oDesc("class").Value = "ng-binding"
oDesc("html tag").Value = "A"
oDesc("innertext").Value = "AplhaID"

Set lnk = page.ChildObjects(oDesc)

'gives me 2 which is correct. There are two links
msgbox lnk.Count

'highlights the correct link
lnk(0).Highlight
我不知道是什么导致了这种行为。我认为这可能是因为多个链接与描述匹配,但我对多个ID执行此搜索,即使返回多行,描述性编程代码也能够识别正确的行并继续


我查看了链接,但链接的属性值没有特殊字符。

要使用描述性字符串方法,请确保只有一个对象与给定属性匹配

page.Link("class:=ng-binding","innertext:=AplhaID","html tag:=A").Exist
如果有多个具有给定属性的对象,则下面的语句可能会失败

page.Link("class:=ng-binding","innertext:=AplhaID","html tag:=A").Exist
因此,您需要使用语句来唯一地查找对象。试试这个。它会成功的

page.Link("class:=ng-binding","innertext:=AplhaID","html tag:=A", "index:=0").Exist

你说得对。我使用其他ID查看了搜索,只有使用此ID我才能获得多行。谢谢