Veja como criar uma automação web no Python utilizando o Selenium e os webdrivers de cada navegador! Aprenda passo a passo e com um exemplo prático!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber os arquivos que usamos na aula no seu e-mail, preencha:
O Selenium é uma poderosa ferramenta para automação web no Python que permite uma ampla gama de aplicações nesse campo. Compreender o Selenium Python é fundamental para progredir no mundo do desenvolvimento web e abrir portas para boas oportunidades de emprego.
Nesse contexto, é essencial entender os componentes do Selenium, suas limitações e vantagens, além dos principais métodos utilizados.
Portanto, nesta postagem, abordaremos tudo sobre o Selenium Python e apresentaremos um tutorial simples e completo para criar sua primeira automação web no Python usando essa biblioteca
O Selenium Python é uma biblioteca com diversos métodos que ajudam na automação web no Python. Em suma, as funções permitem controlar o funcionamento de uma página e a interação com ela de forma automática.
Por isso, é extremamente útil para programadores web.
O Selenium webdriver é um dos elementos do conjunto selenium que agrega todos os métodos importantes que ainda vamos ver mais adiante.
É interessante também definir o que vem a ser um webdriver.
Um webdriver é justamente um app especial que controla o navegador. Existem drivers específicos para cada navegador hoje, com as características necessárias para lidar com cada um.
Dentro do universo do Selenium Python, temos alguns subconceitos relevantes. São eles: Selenium IDE, Selenium RC (Remote control), Selenium WebDriver e Selenium GRID. Vamos a um rápido overview de cada um.
A IDE é o espaço para testes e para execução dos códigos. Permite editar, debugar códigos e criar combinações para testagens inteligentes. Na prática, é uma extensão para o navegador.
Por sua vez, o Selenium Remote Control é um servidor que controla o browser de forma remota. Permite então fazer os testes automatizados.
O Webdriver é a aplicação que controla os navegadores de forma automatizada. Inclusive utiliza aplicações nativas para diminuir problemas e interferências com as linguagens e tecnologias usadas nos sites.
Por fim, temos o Grid, que é um servidor de testes automatizados em máquinas remotas. Gerencia várias máquinas de forma centralizada.
Vamos comentar agora os pontos positivos e as limitações do Selenium Python para ilustrar a importância dessa ferramenta.
Primeiro, vale mencionar que é uma solução de código aberto e portável — o que facilita as melhorias e torna o produto algo aberto para otimização de todos na comunidade.
Outro ponto é que o Selenium Python é muito útil para desenvolvedores web que precisam fazer testes em seus sites. Com ele, se testa em menos tempo, com maior precisão, de modo a garantir melhorias consideráveis nos resultados.
Uma limitação que vale notar é a falta de suporte a apps desktop.
Outra limitação é que não há também testes para imagens. E uma necessidade grande é a implementação de relatórios sobre as atividades e testes.
No Selenium Python temos vários métodos interessantes que podem ser adotados a depender da necessidade.
Para clicar em um elemento, o programador pode adotar o click. Um jeito fácil de achar qualquer clicável na página é find_elements_by_xpath(). O método delete_all_cookies apaga os cookies.
Há alguns mais simples também, como o maximize_window e o minimize_window, que maximizam e minimizam janelas, respectivamente.
Veremos a seguir uma lista com vários desses métodos e suas finalidades.
Tabela resumo dos principais métodos
Método | Finalidade |
back | volta no histórico para a página anterior |
close | fecha a página atual |
execute_script | executa JavaScript na janela |
forward | vai adiante no histórico, para a próxima página |
get_window_size | pega o tamanho da janela atual |
refresh | atualiza a página |
get_screenshot_as_file | salvar um print da tela |
Antes de começar o código é necessário que você tenha uma IDE para poder escrever seus códigos em Python. Neste caso, vamos utilizar o Jupyter que é um tipo de IDE para poder rodar o Python, mas pode utilizar qualquer outro de sua preferência!
Como instalar o Selenium Python? Essa é uma pergunta que já deve estar fazendo.
Como vimos, o Selenium, nada mais é, do que uma biblioteca que permite com que o Python abra o seu navegador para executar os comandos desejados.
Para instalar o Selenium, basta abrir o Anaconda Prompt (que é o utilizado no Jupyter). Com o Prompt aberto basta escrever:
pip install selenium
Pronto! Viu como foi fácil? Com essa linha de código já temos essa biblioteca instalada e não vamos precisar repetir esse procedimento.
Agora para que seja possível fazer essa interação do Python com o navegador, o Selenium precisa de um webdriver.
Então, vamos te mostrar como baixar o webdriver, que nada mais é do que um arquivo que permite essa interação do Python com o navegador. No entanto, navegadores diferentes vão precisar de webdrivers diferentes.
Isso quer dizer que dependendo do navegador que estiver utilizando ou queira utilizar terá que baixar um webdriver diferente.
Neste caso, vamos dar exemplos dos dois mais utilizados: Chromedriver para Google Chrome e Geckodriver para Firefox.
Caso você utilize outro navegador, é o mesmo procedimento, pode ir ao Google e buscar por webdriver + o nome do seu navegador.
OBS: Ao fazer o download do webdriver é MUITO IMPORTANTE verificar se está fazendo o download da versão correta para o seu sistema operacional, tanto para a versão dele quanto para a versão do navegador se tiver alguma.
Depois de baixar o arquivo nós vamos extrair o arquivo que está dentro da pasta zipada, para a pasta onde está instalado o Python.
Nós vamos colar/extrair o arquivo exatamente na pasta do Python, nesse caso é a pasta do Anaconda, que é onde temos o executável do Python o Python.exe.
Agora que fizemos esses passos estamos aptos a iniciar o nosso código de automação. Para isso, vamos seguir 3 passos para dar início a nossa automação “básica”.
Nesse caso, vamos obter um Demonstrativo de Resultados da Magazine Luiza. Então vamos acessar o site, clicar em Planilha Dinâmica e depois vamos clicar para fazer o download desse arquivo.
Vamos iniciar com a importação da biblioteca do Selenium, mas como não vamos utilizar a biblioteca inteira, vamos importar somente o que vamos utilizar que é o Webdriver.
from selenium import webdriver
navegador = webdriver.Firefox()
navegador.get("https://ri.magazineluiza.com.br/")
navegador.find_element_by_xpath('/html/body/form/div[12]/div/div/div[1]/div/div[4]/div/a/img').click()
navegador.find_element_by_xpath('//*[@id="D6OClzrGtocpQRELDA4Klw=="]').click()
Esse é o código que vamos utilizar e já vamos comentar cada passo que fizemos, de acordo com os 3 passos que informamos anteriormente.
A primeira linha foi apenas para importar a biblioteca de webdriver.
A segunda linha estamos atribuindo o webdriver + o navegador utilizado (vai depender do que está utilizando) a uma variável qualquer, que neste caso chamamos de navegador.
Na terceira e quarta linha temos uma função para encontrar um elemento na página pelo seu xpath, ou seja, pelo seu “caminho” naquela página.
Nessa hora, você deve estar se perguntando “e como é que eu pego isso?”. Nós vamos te mostrar, é algo muito simples.
Primeiro, temos que ir até a página em questão, em seguida vamos clicar em qualquer parte da página com o botão direito e ir até a opção Inspecionar ou Inspecionar Elemento.
Uma tela similar a essa será aberta no seu navegador, e lá no canto superior esquerdo temos a imagem de uma seta dentro de um quadrado. Vamos clicar nela para poder selecionar um elemento da página.
Feito isso vamos clicar no botão que queremos que o nosso código acesse para descobrir o código referente a ele.
Feito isso você irá visualizar uma linha que foi marcada, que é a linha de código referente ao que foi selecionado. Agora basta clicar com o botão direito nessa linha ir até a opção Copiar e selecionar XPath.
Com isso nós teremos o nosso “caminho” copiado, agora basta colocar dentro da nossa função de encontrar o elemento.
IMPORTANTE: É muito importante que esse caminho seja inserido dentro da função entre aspas simples, para evitar problemas quando o caminho tiver aspas duplas em seu conteúdo.
Para finalizar basta colocar no final do código da função o .click() que é para clicar nesse botão que copiamos o caminho!
Na aula de hoje, você aprendeu sobre a biblioteca Selenium no Python, suas limitações, vantagens e os principais métodos utilizados.
Além disso, você pôde aprender como criar uma automação web no Python usando o Selenium e os webdrivers, por meio de um tutorial simples e completo.
Percebeu como foi fácil realizar nossa primeira automação em Python? Se deseja aprender mais sobre automações com Python, conheça nosso curso de Python Impressionador completo. Além disso, você pode conferir este projeto de automação do Instagram aqui.
Para acessar outras publicações de Python, clique aqui!
Sócio fundador e especialista em Python da Hashtag Treinamentos. Criador do Método Impressionador para ensinar pessoas comuns a crescerem na carreira e se destacarem na empresa usando o Python.