Невозможно обработать окно подтверждения с помощью селена RC - PullRequest
0 голосов
/ 05 июля 2011

Я пытаюсь нажать кнопку ОК из окна подтверждения, как это (я добавил Thread.spleep, поэтому я проверил, нажата ли кнопка и отображается ли окно подтверждения)

selenium.chooseOkOnNextConfirmation(); 
selenium.click("xpath=//a[contains(@href,'123')]");
assertTrue(selenium.getConfirmation().equalsIgnoreCase("123"));

но я получаю это

com.thoughtworks.selenium.SeleniumException: ERROR: There were no confirmations
at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
at com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:262)
at com.thoughtworks.selenium.DefaultSelenium.getConfirmation(DefaultSelenium.java:429)

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Я получил ту же ошибку с кодом

selenium.chooseCancelOnNextConfirmation();//点击cancel按钮
selenium.click("link=Delete");
selenium.getConfirmation();

Наконец, я нахожу причину в том, что разработчик использовал функцию jconfirm jquery вместо window.confirm, а функция jconfirm переопределяется с помощью div.

Наконец-то я использовал assertTrue(selenium.isElementPresent("id=popup_container")).

0 голосов
/ 05 июля 2011

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

Java-скрипт генерирует 3 типа всплывающих окон

1) Оповещения 2) Подтверждения 3) Запрашивает

ваш случай, я думаю

1) может быть оператором selenium.click (), который вы использовали, не вызывает окно подтверждения

1011 * OR *

2) если это срабатывает, то это может быть не поле подтверждения. Это может быть любое из двух других полей

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

Пример: окно подтверждения: содержит кнопки «ОК» и «Отмена» Окно оповещения: содержит только кнопку ОК Окно подсказки: содержит текстовое поле и кнопки ОК и Отмена

поэтому проверьте и используйте эти команды соответственно

, если это не так, пожалуйста, укажите код HTML

...