Tamanho de fonte
Alto contraste
Altura de linha

Selenium com Python: tutorial completo para automação

Avatar de Ana Maria Gomes Ana Maria Gomes
10 minutos de leitura 6 dias atrás

Automatizar processos repetitivos e realizar testes em aplicativos web são tarefas essenciais para garantir a eficiência e qualidade no desenvolvimento. E, se você está começando nessa jornada, o Selenium pode ser a ferramenta ideal. Usado em conjunto com Python, ele oferece uma solução poderosa e acessível para automatização.

Neste artigo completo, você aprenderá desde a instalação e integração com Python até a criação de scripts para automatizar tarefas no seu navegador, ajudando a tornar seu trabalho mais eficiente e ágil.

O que é Selenium?

Selenium é uma ferramenta de automação que permite simular interações humanas em sites, como clicar em botões, preencher formulários e navegar entre páginas. Ideal para automatizar testes e coleta de dados, ele funciona diretamente nos navegadores da web. Simples de usar com Python, esta é uma ótima escolha de framework para quem precisa realizar tarefas repetitivas em aplicações web, facilitando o trabalho de desenvolvedores e testadores que desejam automatizar processos sem ter que manipular diretamente o código HTML, CSS ou JavaScript.

Componentes fundamentais do Selenium

A arquitetura do Selenium é composta por quatro principais partes:

  1. Selenium IDE: uma ferramenta de interface gráfica que possibilita a gravação e reprodução de testes, ideal para quem não tem experiência em programação.
  2. Selenium RC (Remote Control): uma versão anterior que suportava a automação em várias linguagens, mas foi superada pelo WebDriver.
  3. Selenium WebDriver: o núcleo da automação, que oferece uma interface para interação direta com os navegadores.
  4. Selenium Grid: uma funcionalidade que possibilita a execução de testes em diversos navegadores e plataformas de forma simultânea.

Esses componentes trabalham juntos para facilitar a automação de testes e a interação com aplicações web.

Para que serve o Selenium?

Selenium é uma ferramenta versátil que permite a interação com navegadores, tornando-o ideal para uma variedade de tarefas, incluindo automação de testes, scraping de dados e realização de ações repetitivas. Com suporte a múltiplos navegadores e sistemas operacionais, esta biblioteca facilita a simulação de interações com a interface do usuário, tornando-se uma escolha valiosa para desenvolvedores e testadores em busca de aumentar a eficiência em suas rotinas de trabalho.

Automação de testes de aplicações web

Uma das principais utilizações do Selenium é a automação de testes. Com ele, você pode criar scripts que testam a funcionalidade de uma aplicação web, garantindo que tudo funcione corretamente após atualizações ou mudanças no código.

Web scraping e coleta de dados

Além de testes, o Selenium também é muito utilizado para web scraping, que é a prática de extrair dados de sites. Com o Selenium, você pode navegar por páginas, coletar informações e armazená-las para análise posterior.

Automação de tarefas repetitivas

Se você realiza tarefas repetitivas em um navegador, como preencher formulários ou coletar dados, o Selenium pode automatizar esses processos, economizando tempo e esforço. Veja só este exemplo de um seguidor:

@asimov.academy

Aprenda Python e Selenium. Clique em “Saiba Mais” e conheça nossa plataforma.

♬ som original – Asimov Academy – Asimov Academy

Benefícios de usar Selenium com Python

Usar o Selenium com Python traz uma série de vantagens:

Compatibilidade com múltiplos navegadores

O Selenium suporta todos os principais navegadores, como Chrome, Firefox e Edge. Isso significa que você pode testar sua aplicação em diferentes ambientes para garantir que ela funcione corretamente em todos eles.

Suporte a várias linguagens de programação

Embora o Selenium tenha sido originalmente desenvolvido para Java, ele agora suporta várias linguagens, incluindo Python, C#, Ruby e JavaScript. Isso permite que você escolha a linguagem com a qual se sente mais confortável.

Grande comunidade e documentação

O Selenium possui uma comunidade ativa e uma vasta documentação, o que facilita a resolução de problemas e a aprendizagem. Você pode encontrar muitos tutoriais, fóruns e exemplos de código para ajudá-lo a começar.

Integração com frameworks de teste

O Selenium pode ser facilmente integrado a frameworks de teste populares, como PyTest e Unittest, permitindo que você crie testes mais robustos e organizados.

Como instalar o Selenium com Python?

Instalar o Selenium com Python é um processo simples. Vamos ver como fazer isso passo a passo.

Passo a passo da instalação do Selenium

  1. Instale o Python: certifique-se de que você tem o Python instalado em seu sistema. Você pode baixá-lo em python.org.
  2. Instale o Selenium: abra o terminal ou prompt de comando e execute o seguinte comando:
   pip install selenium

Exemplos práticos de uso do Selenium

Agora que você já instalou o Selenium, vamos ver alguns exemplos práticos de como usá-lo.

Automação de uma tarefa simples no navegador

Vamos criar um script simples que abre o navegador e acessa um site.

from selenium import webdriver

# Cria uma instância do Chrome WebDriver
driver = webdriver.Chrome()

# Acessa o site
driver.get("https://www.simplilearn.com")

# Fecha o navegador
driver.quit()

Neste exemplo, importamos o módulo webdriver, criamos uma instância do Chrome WebDriver e acessamos o site da Simplilearn. Por fim, fechamos o navegador.

Automatizando ações em elementos da web

Agora, vamos interagir com um elemento da página, como um botão.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Configura o WebDriver para o Chrome
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# Abre a página inicial do Google
driver.get("https://www.google.com")

# Localiza o botão de "Fazer login" pelo texto do link e clica nele
botao_login = driver.find_element(By.LINK_TEXT, "Fazer login")
botao_login.click()

# Fecha o navegador
driver.quit()

Aqui, usamos apenas webdriver, By, e Service para abrir e controlar o navegador. A página inicial do Google é acessada com driver.get(). Por fim, Utilizamos o método find_element diretamente com By.LINK_TEXT, para localizar o botão de “Fazer login” e, em seguida, o .click() para realizar o clique.

Realizando web scraping

Vamos coletar dados de uma tabela em uma página da web.

from selenium import webdriver

# Configura o WebDriver para o Chrome
driver = webdriver.Chrome()

# Abre a página de exemplo
driver.get("https://www.x-rates.com/table/?from=USD&amount=1")

# Coleta dados de uma tabela
rows = driver.find_elements("xpath", "//table/tbody/tr")
for row in rows:
    print(row.text)

# Fecha o navegador
driver.quit()

Neste exemplo, acessamos a página de cotações de moedas e localizamos todas as linhas da tabela de cotações. Utilizamos driver.find_elements("xpath", "//table/tbody/tr") para encontrar todas as linhas (<tr>) da tabela. O método find_elements retorna uma lista de elementos que correspondem ao critério de busca especificado. Na sequência, imprimimos o conteúdo de cada linha no console. Esse é um método simples e eficaz para extrair informações estruturadas de uma página web.

Automatizando login em um site

Vamos ver como automatizar o login em um site.

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

driver = webdriver.Chrome()
driver.get("https://www.example.com/login")

# Preenche o campo de usuário
username = driver.find_element_by_name("username")
username.send_keys("seu_usuario")

# Preenche o campo de senha
password = driver.find_element_by_name("password")
password.send_keys("sua_senha")

# Clica no botão de login
driver.find_element_by_name("login").click()

driver.quit()

Aqui, localizamos o campo de nome de usuário com driver.find_element(By.NAME, "username") e o preenchemos com send_keys(). O mesmo é feito para o campo de senha.

Automatizando a captura de tela

Por fim, vamos automatizar a captura de tela de uma página web.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://asimov.academy/")

# Captura a screenshot
driver.save_screenshot("capturadetela.png")

driver.quit()

Neste exemplo, o método driver.save_screenshot("capturadetela.png") é usado para salvar uma imagem da página atual em um arquivo chamado capturadetela.png. Este arquivo será salvo no diretório atual do seu script.

Boas práticas ao usar Selenium

Ao utilizar o Selenium, é importante seguir algumas boas práticas para garantir que seus scripts funcionem de maneira eficiente e confiável:

  1. Esperar por elementos carregarem: utilize métodos de espera, como WebDriverWait, para garantir que os elementos estejam disponíveis antes de interagir com eles. Isso ajuda a evitar erros em páginas que carregam conteúdo dinamicamente.
  2. Manter o código organizado: separe suas funções e mantenha seu código modular. Isso facilita a manutenção e a leitura do código.
  3. Tratar exceções: esteja preparado para lidar com exceções que podem ocorrer durante a execução do seu script, como elementos não encontrados ou problemas de conexão.

Se está animado para continuar sua jornada em Python e automação, vale a pena explorar outros frameworks de teste, como o PyTest, ou se aprofundar em técnicas de web scraping com a biblioteca Beautiful Soup. Cada uma dessas ferramentas complementa o Selenium, ampliando suas possibilidades e tornando seu trabalho ainda mais dinâmico e produtivo.

Limitações do Selenium

Embora o Selenium seja uma ferramenta poderosa, ele também possui algumas limitações:

Desafios com elementos dinâmicos

O Selenium pode ter dificuldades em interagir com elementos que mudam dinamicamente, como aqueles que dependem de JavaScript para serem carregados. Para contornar isso, utilize as boas práticas mencionadas anteriormente, como esperar por elementos.

Suporte limitado para aplicações móveis

O Selenium é principalmente voltado para aplicações web e não oferece suporte nativo para testes em aplicações móveis. Para isso, você pode considerar o Appium, que é uma extensão do Selenium para dispositivos móveis.

Desempenho em aplicações grandes

Em aplicações web muito grandes, a biblioteca pode apresentar lentidão, especialmente se muitos testes forem executados simultaneamente. Para melhorar o desempenho, considere otimizar seus testes e utilizar o Selenium Grid para distribuir a carga.

Como dominar automações com Selenium e Python?

Se você está pronto para aprofundar seus conhecimentos em automação com Selenium e Python, a Asimov Academy oferece a Trilha Python Office, uma formação completa que ensina como aplicar Python em diversas automações no ambiente de trabalho. Essa trilha cobre desde o básico até a criação de scripts avançados, perfeitos para quem deseja automatizar tarefas repetitivas em ferramentas de escritório, como Excel e e-mails.

Clique no card abaixo e transforme suas habilidades em automação:

Referências

Imagem de um notebook

Cursos de programação gratuitos com certificado

Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:

  • Conteúdos gratuitos
  • Projetos práticos
  • Certificados
  • +20 mil alunos e comunidade exclusiva
  • Materiais didáticos e download de código
Inicie agora

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov