2013-08-16 6 views
0

제 목표는 타사 응용 프로그램에서 사용하기 위해 테스트중인 응용 프로그램 (AUT)에서 UFT가 생성하는 마우스 및 키보드 이벤트를 캡처하는 것입니다. 이상적으로 솔루션은 기존 테스트를 사용하거나 최소한의 변경만으로 작업해야합니다.HP UFT : 테스트중인 응용 프로그램의 창 찾기

AUT에서 Windows hooking을 사용하면 작동하지만 AUT의 창 핸들을 열거해야합니다. 그 (것)들을 얻는 일반적인 방법 있는가?

가장 간단한 해결책은 시험에서 개체에 대해이 작업을 수행 할 것입니다 :

Set obj = Dialog("Login") 
Print "HWND of the login dialog: " & Hex(obj.GetROProperty("hwnd")) 

는 명백한 단점은 수동으로 각 테스트의 객체 각각에 대해이 코딩된다.

나는 창 및 대화 개체를 열거했지만, 그것은 UFT는이 AUT 유무에 속하는지 여부를 모든 창을 열거 밝혀 :

Set desc = Description.Create 
Set objChildren = Desktop.ChildObjects(desc) 
' The following counts every open window on the desktop 
Print "Objects under Desktop: " & objChildren.Count 

놀랍게도, 시험의 객체 저장소가 비어 켜져을 :

Dim qtApp,qtRepositories, actName 
actName=Environment.Value("ActionName") 
Set qtApp = GetObject("", "QuickTest.Application") 'also tried with CreateObject 
Set qtRepositories = qtApp.Test.Actions(actName).ObjectRepositories 
' The following line outputs zero 
Print "Action name: " & actName & " Repository count: " & qtRepositories.Count 
: 개별 행동 '저장소를 쿼리
' The following line outputs zero 
Print "Repository Count:" & RepositoriesCollection.Count 

는 결과가 켜져 없습니다

ObjectRepositoryUtil을 사용할 수있는 옵션이 있지만 저장소 경로가 필요합니다. 내가 말할 수있는 한, "Flight GUI"샘플 애플리케이션을 기반으로 만든 작은 테스트에는 객체 저장소가있는 .tsr 파일도 포함되어 있지 않습니다.

UFT에서 테스트중인 응용 프로그램의 창을 가져 오는 다른 방법이 있습니까?

+0

먼저 qtp 사용자 가이드를 읽는 것이 도움이 될 것입니다. 예를 들어, Description.Create로 빈 설명을 작성한 다음 Desktop.ChildObjects에 제공하면 실제로 설명과 일치하는 모든 GUI 객체가 반환됩니다.이 경우는 all입니다. 설명을 고유하게 만들기 위해 설명에 속성을 추가해야합니다. 그렇지만 ChildObject를 전혀 호출 할 필요가 없습니다. dox를 참조하십시오! – TheBlastOne

답변

0

CreateObject ("Shell.Application"). 창을 사용하여 모든 창에 액세스 한 다음 응용 프로그램 제목과 일치하는 창 제목과 같은 조건으로 반복 할 수 있습니다. 나를 찾으려고 노력하고있어.

관련 문제