2012-04-01 3 views
1

내 WPF 응용 프로그램에서 프리즘 프레임 워크를 구현합니다. 페이지가 변경 될 때 컨테이너에로드되는 메뉴 컨트롤은 거의 없습니다. 코드화 된 UI를 사용하여이 단추에 어설 션을 추가하려고합니다.코드화 된 UI가 컨트롤을 일관되게 인식하지 못합니다.

첫 번째 화면에서 CUIT를 사용하면 아무 것도 인식되지 않습니다. 그러나 두 번째 화면에서는 인식됩니다. 컨트롤이 첫 번째 화면에서 한 단계 깊숙이있는 것을 제외하고는 코드를로드하는 데 코드가 변경되지 않습니다 (즉, 스눕이 보여주는 것).

표준 WPF 컨트롤이지만 컨트롤을 노출하기 위해 소스 코드 끝에 자동화 피어 코드를 작성해야합니까?

그 밖에도 그 (것)들을 일관되게 붙잡는 것을 시도 할 수 있습니까? Inspect.exe는 UIA가 확인

는, 스눕 모든 WPF에 관계없이 내가에서 오전 화면 제어 표시합니다.

+0

첫 번째 화면을로드하기 전에 ['Thread.Sleep()'] (http://msdn.microsoft.com/en-us/library/system.threading.thread.sleep.aspx)를 추가하십시오. – KMoraz

+0

감사합니다. KMoraz, 하지만 난 dev에 코드에 액세스 할 수 있습니다. Sleep이 테스트 코드에 있어야한다면, 그것이 어떻게 작동하는지 설명해 주시겠습니까? – kris123pra

+0

모든 컨트롤이로드 될 때까지 기다리는 것을 허용합니다. – KMoraz

답변

2

확인을 나는 이해 생각 때문에. 첫 페이지로 이동하여 CodedUI Test Builder 또는 Spy ++를 사용하여 항목을 강조 표시하거나 선택하려고하면 컨트롤이 인식되지 않지만 다른 페이지에서 인식됩니다.

컨트롤이있는 컨테이너가 첫 번째 페이지에서 사용자 지정 컨트롤 또는 일반 WPF 컨트롤 유형입니까? 사용자 정의 컨트롤 인 경우 AutomationPeer 클래스를 구현하여 컨트롤에서 의미있는 작업을 수행해야합니다. 당신이해야 할 일은 부모 컨테이너 안에서 수동으로 클릭하기 위해 코드를 작성하는 버튼을 클릭하는 것입니다.

+0

감사합니다. 컨트롤은 표준 WPF 버튼이었습니다. 우리는 코딩 된 UI가 컨트롤을 인식하는 것을 방해하는 또 다른 레이어가 있음을 발견했습니다. 지금은 문제가 해결되었지만 이러한 일이 다시 발생하면 피어를 구현하는 방법을 알고있는 것이 좋습니다. 누구든지 좋은 사이트를 제안 할 수 있습니까? – kris123pra

관련 문제