Установка тайм-аута загрузки страницы Selenium за прокси
Задайте тайм-аут навигации браузера и отличайте его от ожиданий элементов, тайм-аутов сценариев и управляющего соединения WebDriver.
from selenium.common.exceptions import TimeoutException
driver.set_page_load_timeout(30)
try:
driver.get('https://example.com/')
except TimeoutException:
print('The navigation did not finish within its page-load timeout.')
Задайте это перед навигацией у драйвера, уже настроенного с нужным прокси. Метод Python принимает секунды.
Выбранная стратегия загрузки страницы определяет завершение: normal ждёт полной готовности документа, а eager использует более раннее состояние. Ни одна не ждёт каждого будущего запроса, созданного сценарием.
| Предел | Ограничиваемая работа |
|---|---|
| Тайм-аут загрузки страницы | Навигация достигает выбранного состояния завершения |
| Неявное ожидание | Попытки найти элемент |
| Тайм-аут сценария | Применимое асинхронное выполнение сценария |
| Тайм-аут транспорта WebDriver у раннера | Отдельный управляющий запрос от тестового сценария к драйверу |
Если это управляющее соединение зависает или использует неподходящий прокси, бюджет навигации браузера это не исправит. Многошаговым рабочим процессам нужен и общий бюджет задачи; контролирующий раннер может обнаружить остановившийся прогресс отдельно от одной навигации.
Сохраняйте сообщённый таймер или транспорт в записи об ошибке. Один лишь тайм-аут навигации не различает настройку прокси, задержку пункта назначения и собственное поведение страницы при загрузке.