альтернатива для waitForPageToLoad в Selenium - PullRequest
2 голосов
/ 29 июля 2009

У меня есть ряд ссылок на странице, загрузка которых занимает разное время ... Я хочу определить количество времени, которое занимает каждая из них ... Проблема, с которой я столкнулся, заключается в том, что время ожидания ForForgeTageLoad, если оно превышено, приводит к тому, что тест потерпеть неудачу, а остальные мои ссылки не проходят тестирование ... Я знаю, что могу просто пропустить подозрительные ссылки в тесте или установить ограничение по времени сверх ожидаемого, но я надеялся, что существует альтернатива waitForPageToLoad, которую можно использовать для ловушка, когда страница загружается в Selenium, так что если загрузка страницы занимает больше минуты, это не завершает сценарий.

Ответы [ 4 ]

3 голосов
/ 18 ноября 2009

Ответ Вавы отлично сработал для меня, мне просто нужно было добавить приращение ко второй переменной.

Я также хотел подождать только 5 секунд, поэтому я изменил критерии перерыва.

int second = 0;
while(!selenium.IsElementPresent(mylink))
{
    if(second >= 5) 
        break;
    Thread.Sleep(1000);
    second++;
}
2 голосов
/ 20 августа 2009

Вот что я бы использовал:

int second = 0;
while(!selenium.IsElementPresent(mylink))
{
    if(second >= 300) 
        break;
    Thread.Sleep(1000);
}

Вам действительно не нужен \ хотеть блок try-catch (exception), поскольку IsElementPresent не должен генерировать исключения.

1 голос
/ 30 июля 2009

Похоже, мне, возможно, придется перейти на экспорт в Perl или Java, чтобы получить функциональность, которую я ищу. Но waitForElementPresent очень помог. спасибо: -)

что-то вроде ...

    for (int second = 0; ; second++) {
        if (second >= 300) break;
        try {if (selenium.isElementPresent( mylink )) break;} 
        catch (Exception e) {}
        Thread.sleep(1000);
    }
0 голосов
/ 29 июля 2009

Лучший способ сделать это - установить тайм-аут на число в далеком будущем, потому что для селена по умолчанию используется 30 секунд.

setTimout | 300

И затем вы можете waitForElementPresent вызвать объект на следующей странице, если вы не хотите waitForPageToLoad

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