Как перехватить окно ошибки сценария в Internet Explorer?
#1
Отправлено 29 марта 2012 - 19:57
ТС вместо события UnexpectedWindow открывает еще одно окно Explorer и пытается продолжить работу.
Но мне нужно что бы все было в одном окне.
Может кто что подскажет?
TestComplete 7, jscript, .NET
#2
Отправлено 30 марта 2012 - 12:06
if (Aliases.iexplore.FindChild("WndCaption", "Ошибка сценария Internet Explorer").Exists)
{
Log.Error(Aliases.iexplore.FindChild("WndCaption", "Ошибка сценария Internet Explorer", 5).FindChild("Name", "*Panel*spnError*", 5).innerText)
Aliases.iexplore.FindChild("WndCaption", "Ошибка сценария Internet Explorer", 5).Close();
}
Но как сами понимаете, вставлять везде это -- не лучший выход.
У кого есть идеи по привязке к какому-нибудь событию?
#3
Отправлено 30 марта 2012 - 16:27
Вижу два возможных решения:
1. Всё-таки вставлять везде, где может возникнуть ошибка, код обработки сообщения об ошибке. Только его надо вынести в отдельную процедуру и звать оттуда.
2. Использовать таймер, проверяя наличие окна с ошибкой каждую минуту, например. Подробнее о таймерах почитайте тут.
Дмитрий
#4
Отправлено 30 марта 2012 - 18:02
TestComplete генерирует событие OnUnexpectedWindow если не может выполнить действие над UI объектом из-за того, что некоторое модальное окно мешает получить доступ к этому объекту. Судя по всему, в вашем случае тест не пытается выполнить никаких действий в момент, когда появляется сообщение об ошибке.
Вижу два возможных решения:
1. Всё-таки вставлять везде, где может возникнуть ошибка, код обработки сообщения об ошибке. Только его надо вынести в отдельную процедуру и звать оттуда.
2. Использовать таймер, проверяя наличие окна с ошибкой каждую минуту, например. Подробнее о таймерах почитайте тут.
Спасибо, так сейчас и делаю.
А есть ли библиотеки c расширенным числом событий? (Ну а вдруг?)
#5
Отправлено 02 апреля 2012 - 18:56
Дмитрий
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных