Меня интересует значение таймаутов по умолчанию для селена webdriver. ImplicitlyWait
, SetPageLoadTimeout
и SetScriptTimeout
. Поскольку я хочу знать, нужно ли устанавливать значения для этих тайм-аутов? или значение по умолчанию полезно для работы selenium webdriver. Но я не могу найти правильный ответ, кто-то говорит, что значение по умолчанию равно 0, а другое - 30 секунд.Значение по умолчанию тайм-аутов на веб-сервере selenium
ответ
Эти три тайм-аута управляются серверной стороной уравнения Селена. Ваш скрипт, будь то в 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, как эти таймауты. Поэтому значения и их интерпретации должны быть одинаковыми для других браузеров.
Для неявного ожидания всегда по умолчанию ожидают его ZERO. , Вы можете проверить его здесь:
Selenium Webdriver diff. waits
И если установить пользовательское время, то веб-водитель будет ждать, чтобы получить элемент до того времени, и если элемент не найден до того времени, то только веб-водитель будет бросать исключение.
Документация Selenium очень неясна в отношении этих тайм-аутов.
- По this таймаут по умолчанию неявного-ждущего
- Согласно this любая страница, которая не загружается в 60-е годы будет возвращать НТТР тайм-аут, если явно не перезаписывать тайм-аут.
- К сожалению, я не нашел ссылки для предоставления по адресу ScriptTimeout. Но по умолчанию это согласно моим знаниям и опыта. Будет ли уточняться вам какие-либо ссылки позже?