Значение таймаута по умолчанию для selenium webdriver
меня интересует значение таймаута по умолчанию на selenium webdriver.
ImplicitlyWait
, SetPageLoadTimeout
и SetScriptTimeout
.
Потому что я хочу знать, нужно ли мне устанавливать значения для этих тайм-аутов? или значение по умолчанию хорошо для работы selenium webdriver.
Но я не могу найти правильный ответ, кто-то говорит, что значение по умолчанию равно 0, а другой говорит, что это 30 сек.
3 ответов
эти три таймаута управляются серверной частью уравнения Селена. Ваш скрипт, будь то на Java, Python, Ruby, C# или любом другом, является клиентом, который отправляет команды на сервер, который живет в браузере. (Может быть посредник, который передает команды в браузер, например Selenium grid. К сожалению, его также иногда называют "сервером".)
сервер Firefox определяет свои таймауты следующим образом:
на неявное ждать по умолчанию время ожидания равно 0. Это означает, что если команда, которая находит элементы, ничего не находит, она не будет ждать.
-
на тайм-аут загрузки страницы по умолчанию установлено значение -1. Это означает, что Selenium будет бесконечно ждать загрузки страницы.
Что Сайфур нашел и не то же самое, что и время ожидания загрузки страницы. Это тайм-аут между клиентом Selenium и сервером Selenium, который не особо хорошо объяснил на странице Сайфур нашли.
-
на тайм-аут сценария по умолчанию установлено значение 0. Комментарий в исходном коде объясняет:
количество времени, в миллисекундах, этот сеанс должен ждать завершения выполнения асинхронных сценариев. Если установлено значение 0, тайм-аут не будет срабатывать до следующего цикла событий после выполнения скрипта. Это даст скрипты, которые используют 0-based setTimeout для заканчивать.
поэтому, даже если он установлен в ноль, асинхронный скрипт все равно может выполняться, но он должен завершиться до того, как тайм-аут Selenium получит шанс запустить снова.
Это из кода, который Selenium использует для Firefox. Другие браузеры используют разные базы кода, но они должны вести себя последовательно, по крайней мере, в отношении вещей, которые свойственны самому Селену, как эти таймауты. Таким образом, ценности и их интерпретации должны быть то же самое и для других браузеров.
для неявного ожидания всегда по умолчанию ждать его ноль. вы можете проверить его здесь :
Selenium WebDriver diff. Уэйтс
и если вы установите пользовательское время, то веб-драйвер будет ждать, чтобы получить элемент до этого времени, и если элемент не найден до этого времени, то только веб-драйвер выдаст исключение.
документация Selenium очень неясна в этих таймаутах.
- По данным этой тайм-аут неявного ожидания по умолчанию -0
- По данным этой любая страница, которая не загружается в 60s, возвращает http-связь тайм-аут, Если вы явно не перезаписываете тайм-аут.
- к сожалению, я не нашел никаких ссылок предоставить на Очередь scripttimeout. Но по умолчанию это 0 по моим знаниям и опыт. Обновит вас с любой ссылкой позже