paint-brush
Automação Web com Python e Seleniumpor@terieyenike
33,099 leituras
33,099 leituras

Automação Web com Python e Selenium

por Teri5m2022/09/10
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

A automação da Web é uma das melhores maneiras pelas quais as empresas podem testar um produto em desenvolvimento, especialmente as funcionalidades do aplicativo, como clicar, rolar e outras ações. Neste artigo, aprenderemos como usar o Selenium como ferramenta de automação para testar um site com Python e automatizar todo o processo sem usar mouse ou teclado no navegador. O Selenium nos permite navegar ou usar um navegador sem envolvimento humano e automatizar processos, como digitar uma entrada do usuário e interagir com o site. Por exemplo, é possível automatizar envios de formulários com o Selenium.
featured image - Automação Web com Python e Selenium
Teri HackerNoon profile picture

A automação da Web é uma das melhores maneiras pelas quais as empresas podem testar um produto em desenvolvimento, especialmente as funcionalidades do aplicativo, como clicar, rolar e outras ações.

Essencialmente, a automação da Web trata de imitar a ação humana, pois é crucial garantir que o software funcione em todos os tipos de dispositivos de usuários.

Neste artigo, aprenderemos como usar o Selenium como ferramenta de automação para testar um site com Python e automatizar todo o processo sem usar mouse ou teclado no navegador. O Selenium não funciona apenas com Python, mas com muitas outras linguagens de programação.

Para que serve o selênio?

O Selenium nos permite navegar ou usar um navegador sem envolvimento humano e automatizar processos por meio de código, como digitar uma entrada do usuário e interagir com o site. Por exemplo, é possível automatizar envios de formulários com Selenium. O Selenium faz tudo sozinho, sem um único clique de um humano.

Começando

Antes que o Selenium possa executar qualquer ação por meio do código, precisamos de pacotes e ferramentas para poder executar a automação do navegador e torná-la perfeita.

Instalação

Nesta seção, instalamos o pacote Selenium e o arquivo executável do WebDriver. Primeiro, verifique a versão do navegador Chrome para que seja equivalente à mesma versão do arquivo exec do WebDriver.

O seguinte precisa ser instalado em nossa máquina local:

O navegador Chrome. Baixe aqui

Baixe a versão estável mais recente do ChromeDriver . Na página da Web do ChromeDriver, verifique se a versão do Chrome corresponde à versão do ChromeDriver

Agora, execute este comando para instalar o Selenium no seu terminal:

 pip install selenium

Automatizando uma página da Web

Para começar, crie uma nova pasta contendo o arquivo e os arquivos executáveis do ChromeDriver baixados. O Selenium requer que o driver faça interface com o navegador escolhido, que neste tutorial, estamos usando o navegador Chrome.

É essencial colocar o ChromeDriver no mesmo diretório do arquivo Python.

O diretório do projeto deve ficar assim:

Outra forma de usar o ChromeDriver neste projeto é encontrar a localização do caminho do arquivo e copiá-lo, que deve ficar assim:

Usuários de MacBook:

/Users/<nome do usuário do computador>/Desktop/chromedriver

Usuários do Windows:

C:\Users\<nome de usuário do computador\Desktop\chromdriver

O WebDriver é a ponte que conecta o código Selenium para trabalhar com o navegador Chrome. O navegador Chrome fornece a ponte. Sem ela, a automação não será possível.

Em seguida, vamos copiar e colar o seguinte código no

 automation.py
Arquivo:

 # automation.py
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys chrome_driver_path = './chromedriver'
service = Service(chrome_drive_path) driver = webdriver.Chrome(service=service) url = "https://en.wikipedia.org/wiki/Main_Page"
driver.get(url) article_count = driver.find_element(By.CSS_SELECTOR, "#articlecount a" ) print (article_count.text) drive.close()

O seguinte ocorre no trecho de código acima, pois usaremos o Selenium para navegar na Wikipedia:

  • Importe a função webdriver do módulo Selenium
  • o
     selenium.webdriver
    O módulo fornece todas as implementações do WebDriver e o objeto Service é para lidar com o driver do navegador
  • o
     By
    class é usada para localizar elementos dentro do documento de uma página da web usando suas classes CSS, ids e assim por diante
  • A classe Keys simula as ações do pressionamento de tecla do teclado como RETURN / Enter, F1, Alt e assim por diante
  • Atribua o arquivo executável chromedriver a uma variável
  • Chame o caminho executável do driver para o objeto de serviço
  • O próximo passo é instanciar o navegador Chrome com o
     webdriver.Chrome()
    com o argumento de serviço
  • Defina o url da página da web para verificar
  • Usando o
     .get()
    método irá navegar para a página dada pelo url

Na página da Wikipedia, abra o elemento inspecionar para acessar os elementos que usaremos para obter os detalhes da página para automação.

Agora vamos à tarefa de encontrar a contagem de artigos. O WebDriver nos oferece uma maneira de fazer isso direcionando o elemento usando o método find_element e usando o

 By.CSS_SELECTOR
como o primeiro parâmetro com o nome do seletor,
 #articlecount a.


Antes de executarmos o programa Python, o script tem o método,

 driver.close()
, que fecha a janela do navegador após executar o teste.

Execute o programa com o comando:

 python automation.py

O resultado do terminal deve exibir a contagem de artigos, que mostra o número exato na página da web, 6.545.457 .

Simulando uma ação de clique

Pelo que fizemos até agora, é evidente que o Selenium navega em um site sem o uso ou clique de um mouse.

Agora, vamos simular uma ação em que o navegador reage a um clique em um link da página.

Atualize o

 automation.py
com estas linhas de código:

 # automation.py # import modules contact_us = driver.find_element(By.LINK_TEXT, "Contact us" ) contact_us.click()

Com este snippet de código, estamos encontrando o elemento para o texto do link, “Fale conosco” com o

 By.LINK_TEXT
. Depois de localizar os elementos, anexe o
 contact_us
para uma ação com
 .click()
método.

Novamente, executamos o comando:

 python automation.py


O comando acima dá o resultado da página de contato.

Pesquisar uma página da Web

Existem tantos casos de uso com o Selenium. A pesquisa em uma página da Web pode ser realizada com automação, o que fornece o resultado de uma palavra de pesquisa.

Ainda assim, no mesmo arquivo, automation.py, atualize o arquivo com este código:

 # automation.py search = driver.find_element(By.NAME, "search" ) search.send_keys( "React" , Keys.ENTER)

O código acima faz algo semelhante ao anterior usando o

 find_element
método com o atributo de nome da entrada, search.

Também o

 send_keys
simule pressionando a tecla ENTER, procurando a palavra-chave React .

O resultado da página deve ficar assim:

Conclusão

Este artigo é uma visão geral de como usar o Selenium em Python para automatizar a web, especialmente para desenvolvedores profissionais que desejam saber se há erros no código e como corrigi-los.

As possibilidades de usar Selenium com Python para automação da web são infinitas. Alguns casos de uso incluem preencher um formulário on-line, candidatar-se a empregos no LinkedIn, jogar um jogo clicker e assim por diante. Você conhece outros casos de uso para usar o Selenium?

Por favor, compartilhe seu caso de uso favorito nos comentários abaixo.

Saber mais