2015-05-08 2 views
7

Меня интересует значение таймаутов по умолчанию для селена webdriver. ImplicitlyWait, SetPageLoadTimeout и SetScriptTimeout. Поскольку я хочу знать, нужно ли устанавливать значения для этих тайм-аутов? или значение по умолчанию полезно для работы selenium webdriver. Но я не могу найти правильный ответ, кто-то говорит, что значение по умолчанию равно 0, а другое - 30 секунд.Значение по умолчанию тайм-аутов на веб-сервере selenium

ответ

9

Эти три тайм-аута управляются серверной стороной уравнения Селена. Ваш скрипт, будь то в Java, Python, Ruby, C# или что-то еще, является клиентом, который отправляет команды на сервер, который живет в браузере. (Там может быть посредник, который передает команды в браузере, как Селен сетки К сожалению, это также иногда называют «сервером».).

Сервер Firefox определяет его таймаута как это:

  • Значение по умолчанию implicit wait установлено равным 0. Это означает, что если команда, которая находит элементы, ничего не находит, она не будет ждать.

  • Значение по умолчанию page load timeout. Это означает, что Selenium будет бесконечно ждать загрузки страницы.

    Saifurfound is не так же, как время загрузки страницы. Это тайм-аут между клиентом Selenium и сервером Selenium, который не особенно хорошо объяснен на странице Saifur.

  • По умолчанию script timeout установлен в 0. Комментарий в исходном коде объясняет:

    Время, в миллисекундах, этот сеанс должен ждать завершения асинхронных сценариев. Если установлено значение 0, таймаут не будет срабатывать до следующего цикла событий после выполнения сценария. Это даст скрипты, в которых используется setTimeout на основе 0.

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

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

0

Для неявного ожидания всегда по умолчанию ожидают его ZERO. , Вы можете проверить его здесь:

Selenium Webdriver diff. waits

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

0

Документация Selenium очень неясна в отношении этих тайм-аутов.

  1. По this таймаут по умолчанию неявного-ждущего
  2. Согласно this любая страница, которая не загружается в 60-е годы будет возвращать НТТР тайм-аут, если явно не перезаписывать тайм-аут.
  3. К сожалению, я не нашел ссылки для предоставления по адресу ScriptTimeout. Но по умолчанию это согласно моим знаниям и опыта. Будет ли уточняться вам какие-либо ссылки позже?