Как обрабатывать условные всплывающие окна из приложения с помощью codedui?

Перекодировано множество автоматических тестовых случаев в CodedUI с использованием VS 2010, но появляется много всплывающих окон, основанных на потоке системы, так как те, которые не записаны, тест застревает и не работает...

Есть ли способ, которым мы можем иметь общую функцию для обработки всех всплывающих окон, возникающих во время выполнения теста?


person Shrinath Divase    schedule 31.10.2013    source источник
comment
Если вас не устраивает рабочий процесс записи. Вы можете захватывать объекты и кодировать шаги. Таким образом, у вас будет больше контроля, чем в записанных сессиях.   -  person Carbine    schedule 31.10.2013


Ответы (1)


Два основных варианта. Вы можете написать код, чтобы ожидать появления всплывающих окон и обрабатывать их, но не терпеть неудачу, если они не появляются. Сделайте это, заключив код в назначения для Playback.PlaybackSettings.ContinueOnError. Но это может не соответствовать вашему вопросу.

Другой подход состоит в том, чтобы добавить код повторной попытки. В случае сбоя шага закодированный пользовательский интерфейс может вызвать обработчик ошибок, который может попытаться закрыть всплывающее окно, а затем повторить неудавшееся действие. Сделайте это, добавив обработчик событий в Playback.PlaybackError. Обработчик событий может просто установить повторное использование элемента faling, а затем вызвать Keyboard.SendKeys("{Enter}");, чтобы попытаться закрыть всплывающее окно. Для получения полной информации см. http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/20/retrying-failed-playback-actions-with-coded-ui.aspx

person AdrianHHH    schedule 31.10.2013
comment
Привет, AdrianHHH Большое спасибо за ваше решение, но я не могу добавить событие Playback.PlaybackError в vs 2010. Также статья реализована с использованием VS 2012. Пожалуйста, предложите, как я могу добавить это событие. - person Shrinath Divase; 05.11.2013
comment
Я думаю, что Playback.PlaybackError доступен только в Visual Studio 2012 и более поздних версиях. Сомневаюсь, что его можно будет добавить в версию 2010 года. - person AdrianHHH; 06.11.2013