SeleniumException: ОШИБКА: неожиданное оповещение! - PullRequest
4 голосов
/ 10 сентября 2009

Я получаю эту ошибку при запуске тестов Selen RC для IE7.

com.thoughtworks.selenium.SeleniumException: ОШИБКА: Произошло неожиданное предупреждение! [ошибка: [ошибка объекта]]

Это происходит всякий раз, когда я пытаюсь щелкнуть ссылку, вкладку или что-нибудь кликабельное. Любые идеи, ребята. Это действительно расстраивает.

Ответы [ 6 ]

4 голосов
/ 10 сентября 2009

Проверка в результатах поиска Google сообщения об ошибке и списка рассылки по разработке селена звучит так, как будто это не ошибка в Selenium, а скорее Selenium говорит вам что в вашем веб-приложении была вызвана неожиданная функция window.alert (), и что Selenium не знает, как с ней обращаться, потому что вы не сказали, как это сделать.

2 голосов
/ 10 сентября 2009

Я был бы удивлен, если бы такая же проблема не возникала в других браузерах. Возможно, ваше приложение ведет себя по-разному в зависимости от браузера? По сути, Selenium сообщает, что не может перейти к дальнейшим командам после того, как вы нажмете эти ссылки или вкладки, поскольку обнаружил неожиданное предупреждение JavaScript. Вы не увидите эти предупреждения, потому что Selenium потребляет их. Есть несколько вещей, которые вы можете сделать, чтобы понять, что происходит.

Первое, что я бы предложил, это просто проверить ваше приложение в IE7. Вручную завершите шаги ваших тестов - видите ли вы предупреждения JavaScript? Если это так, вам нужно будет добавить соответствующие команды в ваш тест Selenium.

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

Пример Java / TestNG для обнаружения сообщения оповещения:

assertEquals(selenium.getAlert(), "Hello World");

Вышеприведенное все равно приведет к сбою вашего теста (если в предупреждении действительно не написано «Hello World»), но произойдет сбой с сообщением, похожим на «ожидаемый« Hello World », но был« Ваше неожиданное предупреждение »». 1010 *

1 голос
/ 31 августа 2010

У меня похожая вещь.
Нет ошибки в IE, всплывающее окно с ошибкой JS в Chrome, ничего в FF ... пока я не запустил свой скрипт Selenium и он не сообщил о непредвиденной ошибке. Забавно, когда я делаю selenium.IsAlertPresent (), он возвращает false, хотя и говорит, что он был.

0 голосов
/ 06 июля 2015

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

 if (selenium.isAlertPresent()) {
assertEquals(selenium.getAlert(), "Hello World");

}

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

0 голосов
/ 21 марта 2013

Я тоже видел эту ошибку. В моем случае проблема заключалась в том, что задержка в объекте ответа Ajax вызывала ошибку Selenium IDE. Решение, которое работало для меня, заключалось в добавлении команды паузы сразу после любых вызовов Ajax в тестовом скрипте.

Для вызова ниже потребовалось несколько секунд, чтобы вернуться с действительным ответом Ajax щелчок css = # form3> div.addButton> button.btn.btn-primary

При добавлении предложения паузы проблема «Неожиданное предупреждение» была решена Пауза 5000

0 голосов
/ 30 декабря 2009

Я вижу ту же ошибку. Обычно мы запускаем наш тест, используя C #, но в этом случае мы настраиваем некоторые простые тесты, используя Selenium IDE.

Поскольку Selenium IDE записывает ваши события, а затем позволяет воспроизводить их, вы ожидаете, что он обработает предупреждение. При просмотре событий, которые он записывает, кажется, что он захватывает предупреждение. Однако, когда вы воспроизводите его, события выходят из строя.

Сначала фиксируется событие нажатия. Затем использует assertAlert, чтобы убедиться, что предупреждение произошло.

Проблема возникает при воспроизведении. Это делает событие щелчка, а затем выдает ошибки. Если вы переместите оператор assertAlert до события click, это не сработает. Если вы измените assertAlert на waitForAlert, это тоже не сработает. В любом случае, я не могу понять, как работает воспроизведение в Selenium IDE. Если бы я не нуждался в этом работоспособном для нетехнических целей, я бы просто включил его в свои обычные тесты и покончил с этим.

Редактировать: после дальнейшего просмотра появляется предупреждение, что сообщение не соответствует. Даже при том, что это захватило само предупреждение, делая запись. Визуальный осмотр не помогает мне определить, что он считает другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...