Skip to content

Latest commit

 

History

History
179 lines (125 loc) · 5.33 KB

Selenium.md

File metadata and controls

179 lines (125 loc) · 5.33 KB

O Selenium é uma ferramenta popular para automação de testes e navegação em sites. Com o Selenium WebDriver, você pode simular interações como um usuário real faria, como clicar em botões, preencher formulários e até capturar dados de uma página.

1. Instalação

Para começar, instale o Selenium usando o pip:

pip install selenium

Além disso, você precisará do driver para o navegador que deseja automatizar (por exemplo, ChromeDriver para Chrome ou GeckoDriver para Firefox). Baixe o driver e adicione o caminho ao seu sistema, ou especifique o caminho diretamente no código.

2. Exemplo Básico de Navegação

Vamos abrir o Google e pesquisar uma palavra-chave.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

# Caminho para o driver (exemplo com Chrome)
driver = webdriver.Chrome(executable_path="caminho/para/chromedriver")

# Abrir o Google
driver.get("https://www.google.com")

# Localizar a barra de pesquisa, digitar uma consulta e pressionar Enter
search_box = driver.find_element("name", "q")
search_box.send_keys("Automação com Selenium")
search_box.send_keys(Keys.RETURN)

# Aguardar alguns segundos para ver o resultado
time.sleep(3)

# Fechar o navegador
driver.quit()

Neste exemplo:

  • O Selenium abre o Google.
  • Localiza a barra de pesquisa pelo seu atributo name.
  • Digita "Automação com Selenium" e pressiona Enter.
  • Aguarda 3 segundos e fecha o navegador.

3. Interagindo com Elementos da Página

O Selenium permite interagir com quase qualquer elemento de uma página web. Aqui estão alguns métodos comuns para localizar elementos:

  • find_element_by_id("id")
  • find_element_by_name("name")
  • find_element_by_xpath("xpath")
  • find_element_by_class_name("class")
  • find_element_by_css_selector("css")

Exemplo: Login Automático

Aqui vamos simular um login automatizado.

from selenium import webdriver
import time

# Caminho para o driver (exemplo com Chrome)
driver = webdriver.Chrome(executable_path="caminho/para/chromedriver")

# Abrir a página de login
driver.get("https://www.example.com/login")

# Encontrar e preencher o campo de nome de usuário
username_box = driver.find_element("name", "username")
username_box.send_keys("meu_usuario")

# Encontrar e preencher o campo de senha
password_box = driver.find_element("name", "password")
password_box.send_keys("minha_senha")

# Clicar no botão de login
login_button = driver.find_element("css selector", "button.login")
login_button.click()

# Esperar para ver o resultado
time.sleep(5)

# Fechar o navegador
driver.quit()

4. Capturar Informações de uma Página

Selenium também é útil para capturar dados de uma página. Suponha que queremos extrair os títulos dos resultados de pesquisa do Google.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome(executable_path="caminho/para/chromedriver")

# Acessar o Google e buscar uma palavra-chave
driver.get("https://www.google.com")
search_box = driver.find_element("name", "q")
search_box.send_keys("Selenium Python")
search_box.send_keys(Keys.RETURN)

# Esperar para carregar os resultados
time.sleep(2)

# Capturar os títulos dos resultados
titles = driver.find_elements("css selector", "h3")

# Imprimir os títulos
for title in titles:
    print(title.text)

# Fechar o navegador
driver.quit()

5. Manipulação de Janelas e Guias

Selenium permite abrir novas guias ou janelas, navegar entre elas e fechá-las.

# Abre uma nova guia
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])  # Alterna para a nova guia
driver.get("https://www.python.org")  # Abre o site desejado na nova guia

# Volta para a primeira guia
driver.switch_to.window(driver.window_handles[0])

6. Captura de Screenshots

Para capturar uma imagem da página atual:

driver.save_screenshot("screenshot.png")

7. Exemplo Completo de Automação de uma Página

O exemplo a seguir ilustra uma sequência mais completa. Vamos visitar um site de notícias, procurar uma palavra-chave e capturar os títulos das notícias.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

# Inicializar o driver
driver = webdriver.Chrome(executable_path="caminho/para/chromedriver")

# Acessar o site de notícias
driver.get("https://www.example-news.com")

# Procurar uma palavra-chave (exemplo: "tecnologia")
search_box = driver.find_element("name", "q")
search_box.send_keys("tecnologia")
search_box.send_keys(Keys.RETURN)

# Esperar carregar os resultados
time.sleep(3)

# Capturar e exibir títulos das notícias
news_titles = driver.find_elements("css selector", ".news-title")

for title in news_titles:
    print(title.text)

# Fechar o navegador
driver.quit()

Dicas Importantes

  • Espera explícita e implícita: Em vez de time.sleep, use esperas explícitas (WebDriverWait) para esperar por um elemento específico.
  • Configuração do ambiente: Certifique-se de baixar a versão correta do driver para o navegador e plataforma que você está usando.

Esses exemplos cobrem os principais casos de uso do Selenium para automação de navegação na web. Com ele, é possível automatizar tarefas repetitivas e até criar scripts de teste complexos para aplicativos web.