![]() |
Como usar EC.url_changes no Selenium para aguardar mudança de URL |
|
@CanalQb |
No Selenium, a classe condicional EC.url_changes
é utilizada para aguardar até que a URL atual da página tenha mudado a partir de uma URL inicial específica. Esse recurso é especialmente útil quando se deseja garantir que uma navegação ou carregamento de página ocorreu após uma ação do usuário, como clicar em um link ou enviar um formulário.
Funcionamento do EC.url_changes
O método WebDriverWait
pode ser combinado com EC.url_changes
para pausar a execução do script até que a URL da página tenha se alterado, evitando erros relacionados a interações prematuras antes que a nova página seja carregada.
Exemplo de uso prático
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
wait.until(EC.url_changes("https://www.example.com"))
Neste exemplo, o Selenium aguardará até 10 segundos para que a URL atual seja diferente de https://www.example.com
. Caso a URL não mude dentro desse período, será lançada uma exceção TimeoutException
.
Quando utilizar EC.url_changes
- Após clicar em links que redirecionam para outras páginas.
- Ao submeter formulários que resultam em navegação.
- Para garantir que a página foi recarregada antes de continuar interações.
Dicas para uso eficiente
- Combine
EC.url_changes
com outras condições de espera, comopresence_of_element_located
, para garantir que elementos importantes da nova página estejam disponíveis. - Ajuste o tempo de espera no
WebDriverWait
para evitar esperas desnecessariamente longas ou curtas demais, conforme a velocidade da aplicação.
Documentação oficial
Para mais informações e outras condições de espera, consulte a documentação oficial do Selenium em https://selenium.dev/documentation/.
Considerações finais
O uso do EC.url_changes
é uma prática recomendada para tornar scripts de automação mais estáveis e confiáveis, especialmente em aplicações web que envolvem múltiplas páginas ou redirecionamentos.