예를 들어 아주 간단한 UI를 사용할 것입니다 : 하나의 버튼 (B
)으로 창 (W
이라고합니다). 코딩 된 UI의 UIMap에서 B
은 W
의 하위 항목입니다. 즉지도의 XML 사양에서 B
은 W
의 "자손"에 표시됩니다.코딩 된 UI의 "항상 검색"구성이 부모/자식 객체와 어떻게 작동합니까?
이제 두 개의 인스턴스 W
이 동시에 열립니다. W1
과 W2
을 구별 할 수있는 검색 속성이 있습니다 (예 : 서로 다른 Name
속성이 있음). 을 제외한 B1
과 B2
을 구별 할 수있는 방법이 없습니다. UIMap의 W
UITestControl
에 맞게 W1
의 이름에 Name
속성을 설정
- 를 열고이 윈도우의 경우,
W1
및W2
- :
나는 다음과 같은 절차에 테스트를 수행합니다.
- UIMap의
B
UITestControl
에서Mouse.Click()
을 실행합니다. - UIMap의
W
UITestControl
에Name
속성이W2
의 이름과 일치하도록 설정하십시오. - UIMap의
B
UITestControl
에서Mouse.Click()
을 실행합니다.
내 이해도 W
도 B
가있는 경우 "항상 검색"이다 구성, 다음이 그래서 제 질문은 다음과 같은 경우에 발생하는 모두 단계 3, 5로 클릭하고 B1
으로 이어질 것입니다 :
B
에는 "검색 항상"설정이 있지만W
은 설정되어 있지 않습니다.W
에는 "검색 항상"설정되어 있지만B
에는 설정되어 있지 않습니다.
정보 주셔서 감사합니다. 불행히도 UIMaps를 포함하여 기존 코드를 사용하도록 제한되어 있습니다. 제 대답의 두 번째 단락은 내 질문에 두 번째 시나리오를 다루는 것으로 생각합니다. 답은'B1'을 두 번 클릭한다는 것입니다. 첫 번째 시나리오는 어떻습니까? 같은 질문을 다른 방법으로 말하기 : 컨트롤에서 .Find()를 호출하면 해당 컨트롤의 부모를 다시 찾거나 부모에 대해 캐시 된 내용을 보게됩니까? –
엔진은 하위 컨트롤의 전체 계층 구조를 다시 검색합니다. 부모에 대한 검색 조건을 수정하고 자식에 대해 Find()를 호출하십시오. – kida