|
Como usar o método wait.until(EC.url_changes(...)) no Selenium Python | |
| @CanalQb | ||
Entendendo o método wait.until(EC.url_changes(...)) no Selenium
O Selenium é uma das bibliotecas mais utilizadas para automação de testes web em Python. Um recurso fundamental para garantir que a automação funcione corretamente é o uso de esperas explícitas, como o método wait.until(EC.url_changes(...)).
O que faz o método EC.url_changes?
O método EC.url_changes(url) é uma condição esperada do Selenium que aguarda até que a URL atual do navegador mude em relação a uma URL fornecida.
Isso é especialmente útil após ações como cliques em botões, envios de formulários ou redirecionamentos automáticos.
Exemplo de uso prático no Selenium com Python
Abaixo, você pode conferir um exemplo funcional que demonstra como implementar essa espera:
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # Acessa a página inicial driver.get('https://www.exemplo.com/') # Encontra o link e clica link = driver.find_element(By.XPATH, '//a[@href="/outra-pagina"]') link.click() # Define o tempo máximo de espera wait = WebDriverWait(driver, 10) # Aguarda até que a URL mude em relação à atual wait.until(EC.url_changes(driver.current_url))
Detalhes importantes
- A função
driver.current_urlretorna a URL atual do navegador. - Se a nova página demorar a carregar, o Selenium esperará até no máximo o tempo definido no
WebDriverWait. - Se a URL não mudar dentro do tempo estabelecido, uma exceção
TimeoutExceptionserá lançada.
Quando usar EC.url_changes na automação?
Esse método é ideal para situações como:
- Login que redireciona para uma página inicial.
- Formulários que levam o usuário para outra página após envio.
- Redirecionamentos automáticos após cliques em links ou botões.
Ele ajuda a garantir que o Selenium não execute comandos em uma página que ainda não foi carregada totalmente, prevenindo erros de elemento não encontrado.
Alternativas e boas práticas
Além do EC.url_changes, o Selenium oferece outras condições esperadas úteis:
EC.presence_of_element_located: espera por um elemento estar presente no DOM.EC.title_contains: espera até que o título da página contenha certo texto.EC.visibility_of_element_located: aguarda até que um elemento seja visível.
Use essas funções para tornar seus testes mais estáveis e confiáveis, especialmente em aplicações dinâmicas.
Considerações finais
O uso correto de esperas no Selenium é essencial para uma automação funcional e resiliente. O método wait.until(EC.url_changes(...)) oferece uma maneira eficaz de lidar com mudanças de URL, permitindo que seu script continue apenas quando o navegador realmente tiver sido redirecionado.
Se você trabalha com automação de processos web, testes de interface ou desenvolvimento de bots em Python, o domínio dessas técnicas é fundamental.
Para mais tutoriais e dicas práticas sobre Python e automação, confira o canal @CanalQb.

Comentários
Comente só assim vamos crescer juntos!