2012-03-02 3 views
0

UI 테스트 자동화 작업을하고 있고 일반적으로 AutomationElement.FromHandle이 매우 빠르다는 것을 알았지 만 가끔 AutomationElement를 반환하는 데 30 초가 걸립니다. 제한된 로깅에서 AutomationElement를 다시 얻으려면 100ms 미만 또는 30 초 정도 걸립니다. 이 유형의 문제를 본 사람이 있습니까?AutomationElement.FromHandle() 실행 시간이 간헐적으로 느림

필자는이 문제의 반복성에 대해 많은 조사를하지 않았기 때문에 테스트중인 응용 프로그램의 컨트롤 클래스에 성능 문제가 있는지 알 수 없습니다.

답변

1

이것이 도움이 될지 모르겠지만 : FromHandle을 사용하면 UIAutomation이 SendMessageTimeout 또는 이와 유사한 방법을 사용하여 WM_GETOBJECT 메시지를 대상 창에 보냅니다. 대상 UI가 고정되어 있거나 다른 작업을 수행 중이면 SendMessageTimeout은 시간 초과가 발생할 때까지 차단합니다. 이것은 간헐적 인 블록의 한 원인이 될 수 있습니다. 당신은 SendMessageTimeout을 사용하여 동일한 HWND에 WM_NULL을 보내어 '핑 (ping)'할 수도 있고, 또한 차단하는 경우 대상 UI가 바쁘다/걸렸습니다.

관련 문제