Skip to main content

Selenium



Selenium


O Selenium é uma ferramenta poderosa que permite automatizar a interação com navegadores web. Ele é amplamente usado em testes automatizados de aplicações web, mas também é muito útil para web scraping de páginas que usam JavaScript pesado, onde ferramentas como requests e BeautifulSoup não conseguem acessar o conteúdo renderizado.



Com o Selenium, você pode:

  • Abrir páginas no navegador (Chrome, Firefox, etc.)
  • Preencher formulários
  • Clicar em botões
  • Esperar elementos carregarem
  • Capturar conteúdo da página depois que o JavaScript terminou de executar

Para usar com o Chrome:

pip install selenium

Você também precisa do ChromeDriver (ou geckodriver para Firefox). No caso do Chrome:

sudo apt install chromium-chromedriver

Ou baixe manualmente em: https://sites.google.com/chromium.org/driver/



Exemplo básico


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

# Configura o navegador para modo "headless" (sem abrir janela)
options = Options()
options.add_argument("--headless")

# Inicia o navegador
navegador = webdriver.Chrome(options=options)

# Acessa o site
navegador.get("https://example.com")

# Espera e pega um elemento (exemplo: título h1)
titulo = navegador.find_element(By.TAG_NAME, "h1")
print("Título da página:", titulo.text)

navegador.quit()


Esperar carregamento


Você pode esperar um elemento carregar usando WebDriverWait:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

elemento = WebDriverWait(navegador, 10).until(
EC.presence_of_element_located((By.ID, "resultado"))
)


Pegando vários elementos


produtos = navegador.find_elements(By.CLASS_NAME, "nome-produto")
for p in produtos:
print(p.text)