Definir um tempo limite de carregamento de página do Selenium atrás de um proxy
Defina um tempo limite de navegação do navegador e distinga-o das esperas de elementos, dos tempos limite de scripts e da conexão de controle do 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.')
Defina isto antes da navegação no driver já configurado com o proxy pretendido. O método do Python recebe segundos.
A estratégia de carregamento de página escolhida define a conclusão: normal espera a prontidão completa do documento, enquanto eager usa um estado anterior. Nenhuma espera por cada pedido futuro criado por scripts.
| Limite | Trabalho delimitado |
|---|---|
| Tempo limite de carregamento de página | Navegação que atinge o estado de conclusão escolhido |
| Espera implícita | Tentativas de localização de elementos |
| Tempo limite de script | Execução assíncrona de script aplicável |
| Tempo limite do transporte WebDriver do executor | O pedido de controle separado do script de teste para o driver |
Se essa conexão de controle ficar pendurada ou usar um proxy inadequado, o orçamento de navegação do navegador não o resolve. Fluxos de trabalho com vários passos também precisam de um orçamento global da tarefa; um executor supervisor consegue detetar progresso parado separadamente de uma única navegação.
Guarde o temporizador ou o transporte reportado no registo de falhas. Um tempo limite de navegação por si só não distingue a configuração do proxy, o atraso do destino e o comportamento de carregamento da própria página.