2014-12-01 6 views
1

내 애플리케이션에서 하나 이상의 데이터 행을 반환하는 영숫자 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 및 여러 행에 대해이 검색을 수행하면 설명적인 프로그래밍 코드가 올바른 행을 식별하고 진행할 수 있습니다.

나는 QTP descriptive programming issue을 보았지만 내 링크의 속성 값에는 특수 문자가 없습니다.

답변

1

설명적인 문자열 방법을 사용하려면 주어진 속성과 일치하는 개체가 하나만 있어야합니다.

주어진 속성을 가진 개체가 두 개 이상있는 경우 아래 명령문이 실패 할 수 있습니다.

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

따라서 개체를 고유하게 찾기 위해 문을 작성해야합니다. 이 시도. 그것은 작동합니다!

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

정확합니다. 다른 ID를 사용하여 검색을 검토 한 결과이 ID로만 여러 행을 얻었습니다. 감사! –

관련 문제