Команда Selenium open иногда не работает - PullRequest
4 голосов
/ 03 апреля 2009

иногда мои тесты на селен получают время ожидания следующих предложений: Как вы получаете селен, чтобы узнать, что страница загружена? не решает мою проблему В основном это происходит в начале теста, когда я использую open или openAndWait. Странно то, что страница фактически открывается, но тест просто останавливается и не выполняется дальше. Я использую версию бета-2 и многооконный true. Я вызываю браузеры с помощью специальной команды. Я открыт для любых предложений.

ТНХ

Куку

Ответы [ 3 ]

1 голос
/ 12 марта 2010

Это работает для меня в IE6, IE7, IE8, FF, Chrome:

<tr>
  <td>waitForCondition</td>
  <td>
    (selenium.browserbot.getCurrentWindow().$$("body").length == 1) ? true : false;
  </td>
  <td>10000</td>
</tr>

Он просто опрашивает целевое окно и проверяет наличие элемента body. Однако он по-прежнему подвержен тайм-ауту, но вы можете установить его так, как вам нравится.

Примечание: приведенный выше код использует Prototype JS для получения элемента body. Это не обязательно, но потребует некоторых модификаций, если вы используете другую библиотеку JS.

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

У меня была похожая проблема, у меня просто будет тайм-аут, несмотря ни на что.
Я вижу, что страница отображается полностью, но по какой-то причине selenium.open(relative_url) просто остановится.

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

Я исправил это , обработав исключение с помощью try / catch и в основном приступил к проверке, действительно ли страница отображается или нет (работает как шарм), поэтому мой код выглядит так:

try {
    selenium.open(relative_url);
} catch (Exception e) {
    // check if page rendered completely here
}
// continue
1 голос
/ 03 апреля 2009

Вы пытались поставить фиксированную паузу (несколько секунд) после openAndWait? По моему опыту, все «открывает» и «щелкает» в селене (даже * и в том числе) не гарантируют вам, что страница полностью загружена в браузере до обработки следующей команды селена. Вот почему я всегда добавляю небольшую паузу после таких команд.

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

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