Formulário de contato

Nome

E-mail *

Mensagem *

Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Como usar Selenium para aguardar elementos na página

Como usar Selenium para aguardar elementos na página

Publicado por em

Como usar Selenium para aguardar elementos com Python

Ao utilizar o Selenium em scripts de automação web com Python, é comum se deparar com o erro "no such element: Unable to locate element". Esse erro indica que o Selenium não conseguiu encontrar o elemento desejado na página, geralmente porque ele ainda não foi carregado completamente.

Por que esse erro acontece?

Esse problema pode ocorrer por diversos motivos, como:

  • O elemento ainda não foi carregado pelo JavaScript;
  • A página ainda está em processo de renderização;
  • O seletor usado está incorreto ou desatualizado;
  • A navegação para a página ainda não foi concluída.

Como evitar o erro com WebDriverWait

O Selenium oferece uma solução eficaz para esse problema: o uso da classe WebDriverWait, em conjunto com as Expected Conditions (condições esperadas). Dessa forma, o código "espera" até que o elemento esteja disponível na página antes de prosseguir.

Exemplo com By.ID

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "element_id")))

Esse código irá aguardar até 10 segundos para que um elemento com o ID "element_id" apareça na página. Caso ele não seja encontrado nesse intervalo, será lançada uma exceção TimeoutException.

Exemplo com By.XPATH

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.XPATH, "//element[@attribute='value']")))

Verifique se o seletor está correto

Certifique-se de que você está utilizando o seletor correto para localizar o elemento. Você pode usar as ferramentas do navegador (como o DevTools do Chrome) para inspecionar o elemento manualmente.

Esperar o carregamento completo da página

Se o erro ocorre porque a navegação para uma nova URL ainda não foi concluída, você pode usar o seguinte código para aguardar a URL desejada:

wait = WebDriverWait(driver, 10)
wait.until(EC.url_to_be("https://www.youtube.com/@canalqb"))

Dica extra: aguarde o elemento ser clicável

Se você não apenas precisa que o elemento esteja presente, mas também clicável (por exemplo, um botão), use:

element = wait.until(EC.element_to_be_clickable((By.ID, "botao_exemplo")))

Resumo

Evitar o erro "no such element" requer boas práticas como:

  • Utilizar WebDriverWait e condições esperadas;
  • Verificar corretamente os seletores usados;
  • Aguardar a URL ou o DOM ser carregado por completo;
  • Usar tempo suficiente para aguardar elementos dinâmicos.

Seguindo essas dicas, você torna seus scripts Selenium muito mais robustos, seguros e profissionais.

Referência oficial

Para mais detalhes técnicos, consulte a documentação oficial do Selenium sobre Waits.

Marcadores:

© CanalQB – Tutoriais de YouTube, Python, Airdrops e Criptomoedas

Comentários