AutomationElement.FromHandle () время выполнения периодически медленно - PullRequest
0 голосов
/ 02 марта 2012

Я работаю над автоматизацией тестирования пользовательского интерфейса и заметил, что обычно AutomationElement.FromHandle работает довольно быстро, но иногда для возврата AutomationElement требуется 30 секунд. Из моего ограниченного журнала требуется либо менее 100 мсек, либо полные 30 секунд, чтобы вернуть AutomationElement. Кто-нибудь еще видел этот тип проблемы?

Я признаю, что я не провел много исследований по повторяемости этой проблемы, поэтому я не знаю, есть ли потенциально проблема с производительностью класса управления в тестируемом приложении.

1 Ответ

1 голос
/ 05 марта 2012

Не знаю, поможет ли это, но: когда вы используете FromHandle, за кулисами UIAutomation отправляет сообщение WM_GETOBJECT в целевое окно, используя SendMessageTimeout или подобное. Если целевой пользовательский интерфейс заморожен или занят чем-то другим, SendMessageTimeout будет блокироваться до истечения времени ожидания; это может быть одной из причин прерывистого блока. Вы можете проверить, является ли это причиной, также используя SendMessageTimeout для отправки WM_NULL на тот же HWND, чтобы «пропинговать» его, и если это также блокирует, то вы знаете, что проблема в том, что целевой пользовательский интерфейс занят / завис.

...