Перейти к содержимому

Фотография

Thucydides + ожидание загрузки всех Ajax


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Lace

Lace

    Новый участник

  • Members
  • Pip
  • 48 сообщений

Отправлено 31 января 2013 - 10:34

Добрый день!

прочитала много интересных материалов по Thucydides и начала его изучение.
Правда почти сразу столкнулась с проблемой ожидания выполнения всех Ajax в ходе теста.
В частности проблема возникла с подтверждением алерта.
Тест пытается его подтвердить, не дождавшись его появления (если не указать в шаге подтверждение алерта - тест подвисает и ждет нажатия кнопки Ок). Код в Thucydides выглядит следующим образом:

public void clickSend() {
SendButton.click();
}

public void acceptAlert(){
Alert alert = getDriver().switchTo().alert();//все "рюшечки" добавлены так как просто на alert.accept() тест выдавал и выдает ошибку
String alertText = alert.getText();
alert.accept();
}


на это я получаю неизменно:
net.thucydides.core.webdriver.WebdriverAssertionError: No alert is present (WARNING: The server did not provide any stacktrace information)
Поправка: Сегодня мне выдает ошибку: Modal dialog present (код при этом я не меняла)

Ранее, когда этот же тест я делала только в Eclipse + JUnit, то ожидания Ajax прописывала следующим образом.

private void waitForAllAjaxComplete() throws InterruptedException {
Boolean ajaxIsComplete = false;

for (int second = 0;; second++) {
int timeout = 30;
if (second >= timeout)
fail("timeout");
try {
if (getDriver() instanceof JavascriptExecutor) {
ajaxIsComplete = (Boolean) ((JavascriptExecutor) getDriver())
.executeScript("return jQuery.active == 0;");
} else {
fail("JavascriptExecutor");
}
if (ajaxIsComplete)
break;
} catch (Exception e) {
}
Thread.sleep(1000);}


Но вот данный конкретный метод в thucydides мне перенести не удалось (или не хватает знаний на это).

Наверняка есть красивый и элегантный способ прописать в thucydides ожидания Ajax (для меня это очень актуально, потому что на тестируемой странице их очень много), который я просто не могу найти или не знаю...

ЗЫ. метод "checkThatmainMenuIsVisible" (или любой другой элемент страницы виден) опробован и в данном случае не годится :(
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных