Selenium-RC не может обрабатывать окно подтверждения



Я тестирую веб-приложение, в котором я удаляю элемент из списка. При нажатии на кнопку Удалить приложение запрашивает подтверждение. Selenium IDE распознает его как окно подтверждения. Когда я запускаю код через RC (C#), он даже ловит окно подтверждения, выполняет нажатие кнопки delete на этом окне подтверждения, но, окно подтверждения никогда не видно на экране. Далее, он только нажимает на кнопку удалить; элемент не удаляется. Я попробовал вручную, работает нормально.



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



Вот код:



string confirmation;
for (int second = 0;; second++) {
if (second >= 60) Assert.Fail("timeout");
try
{
confirmation=selenium.GetConfirmation();

if ((confirmation == " Delete confirmation message")) break;

}
catch (Exception e)
{
PrintLog("Error while waiting for confirmation. Error: "+e.Message);
}
Thread.Sleep(1000);
}

try
{
Assert.IsTrue(confirmation == "Delete confirmation message");
}
catch (AssertionException e)
{
PrintLog(e.Message);
}

selenium.FireEvent("//a[@id='btnOkConfirm']","click");


После последнего утверждения выбранный элемент должен быть удален, а страница должна обновиться, но ничего не происходит. Все, что я вижу, это "Javascript:;", написанное в строке состояния окна firefox. Я думаю, что его проблематично получить javascript hrefs работает в selenium-rc.

Спасибо,

Vamyip

744   2  

2 ответов:

Существует ряд команд для работы с подтверждениями JavaScript. Selenium по умолчанию выберет " OK " при подтверждении, если вы не отправите команду chooseCancelOnNextConfirmation. Для того, чтобы использовать подтверждение, вам нужно будет использовать команду getConfirmation.

Ссылка на селен выше команды:

Кроме того, если ваша команда click не показывает подтверждение JavaScript, вы можете обнаружить, что соответствующее событие не быть уволенным. Вы можете попробовать использовать команды mouseDown и mouseUpили команду fireEvent.

Недавно я обнаружил, что такое поведение происходит из-за архитектуры selenium(точнее, его ядра на основе javascript). когда я делаю тест вручную, сохраняя Selenium IDE открытым, это поведение реплицируется. Поэтому я думаю, что сейчас нет немедленного решения этой проблемы. Опубликую здесь, если найду обходной путь.

Спасибо Дейву за ответ.


Update: команда разработчиков сообщила мне, что функция javascript не вызывается с помощью selenium Идэ бежит рядом. Это действительно проблема с ядром Javascript Selenium.

Спасибо всем, кто нашел время ответить на этот вопрос.

С уважением,
Vamyip

Comments

    Ничего не найдено.