Blog

Postado em em 10 de outubro de 2023

Automação Web com Python – Rodar Automação Web em 2° Plano

Aprenda como rodar automação web com Python em 2° plano de forma rápida e prática! Continue utilizando seu computador enquanto a automação está sendo executada.

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 por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Automação Web com Python – Rodar Automação Web em 2° Plano

Na aula de hoje eu quero te mostrar como rodar automação web com Python em segundo plano.

O objetivo é que você consiga rodar automação web com Python sem que apareça o que está sendo feito na tela do seu computador. Dessa forma, você pode continuar usando o seu sistema normalmente enquanto a automação é executada em segundo plano.

Antes de seguir com esse processo, é essencial certificar-se de que a sua automação web com Python esteja funcionando normalmente primeiro.

Como exemplo desta aula, utilizaremos uma automação web com Python e Selenium. O código necessário está disponível para download no material. Se você deseja aprender como o código foi desenvolvido, pode conferir a aula correspondente aqui.

Explicando nosso Código de Automação Web com Python

Este é o código que utilizaremos ao longo dessa aula:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

servico = Service(ChromeDriverManager().install())

navegador = webdriver.Chrome(service=servico, options=opcoes)

# Passo 1:
navegador.get("https://pages.hashtagtreinamentos.com/inscricao-minicurso-python-automacao-org?origemurl=hashtag_yt_org_minipython_videoselenium")

# Passo 2:
navegador.find_element('xpath', 
                       '//*[@id="section-10356508"]/section/div[2]/div/div[2]/form/div[1]/div/div[1]/div/input').send_keys("Lira")
navegador.find_element('xpath', 
                       '//*[@id="section-10356508"]/section/div[2]/div/div[2]/form/div[1]/div/div[2]/div/input').send_keys("[email protected]")

# Passo 3:
navegador.find_element('xpath', '//*[@id="section-10356508"]/section/div[2]/div/div[2]/form/button').click()

elementos = navegador.find_elements('class name', 'slider-pager-item')
print("Encontramos:", len(elementos), "itens")

Esse código essencialmente entra em um site, preenche um formulário, semelhante a um processo de login, e pega uma informação.

Selenium e Webdriver Manager

Para que essa automação funcione corretamente, é importante ter a biblioteca Selenium e o Webdriver Manager instalados em seu computador. Se você seguiu a aula de criação do código, provavelmente já possui essas ferramentas instaladas. Caso contrário, você pode instalá-las utilizando os seguintes comandos no terminal do seu editor de código:

pip install selenium
pip install webdriver-manager

Automações em Python

Quando falamos de automações em Python, existem dois principais tipos de automação: aquelas em que você está integrando programas em seu computador, geralmente ocorrendo em segundo plano, e as automações RPA.

As automações RPA (Robotic Processing Automation) são realizadas através de robôs. Basicamente, você cria um bot que executa processos automaticamente em seu lugar. Esses bots podem ser divididos em bots locais e bots web.

Os bots locais são automações que controlam o mouse, teclado e a tela do computador, muitas vezes utilizando bibliotecas como o PyAutoGUI. Normalmente, esses bots não podem ser executados em segundo plano diretamente a partir do seu código.

Devido ao fato de que esses bots controlam diretamente o seu computador, você fica impossibilitado de utilizá-lo enquanto o bot está em execução. Nesses casos, o mais aconselhado é executá-los em uma máquina virtual ou em um servidor dedicado.

Por outro lado, os bots web são processos que ocorrem na internet, abrindo um navegador e executando tarefas online, como enviar uma mensagem pelo WhatsApp Web.

Uma das bibliotecas mais populares para a construção de automações web com Python é o Selenium, que, por padrão, executa a automação no primeiro plano. Na aula de hoje, vou mostrar como executar essa automação em segundo plano.

Automação Web com Python em 2° Plano

Para executar nossa automação web com Python em segundo plano, é um procedimento bastante simples e vamos utilizar o WebDriver do Selenium para isso.

O Selenium WebDriver inclui uma classe chamada ChromeOptions que nos permite configurar várias opções e preferências específicas para o navegador Google Chrome. Isso nos permite personalizar o comportamento do navegador durante a automação.

No entanto, é importante notar que, como nossa automação está sendo realizada no Google Chrome, estamos utilizando o ChromeOptions. Se você estiver executando a automação em outro navegador, será necessário configurar as opções corretamente de acordo com o driver correspondente a esse navegador e usar a classe correspondente a ele.

Para habilitar o modo de execução em segundo plano, faremos algumas modificações em nosso código. Primeiramente, vamos criar uma variável chamada opcoes que receberá a classe ChromeOptions.

opcoes = webdriver.ChromeOptions()

Em seguida, utilizaremos a função add_argument para adicionar o argumento ‘–headless=new’, que fará com que a página do navegador não seja exibida enquanto a automação está em execução.

opcoes.add_argument('--headless=new')

Por fim, precisamos atualizar nossa variável navegador, responsável por abrir o navegador web, para que ela inclua o parâmetro options.

navegador = webdriver.Chrome(service=servico, options=opcoes)

Dessa forma, nosso código final ficará assim:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

servico = Service(ChromeDriverManager().install())

opcoes = webdriver.ChromeOptions()
opcoes.add_argument('--headless=new')

navegador = webdriver.Chrome(service=servico, options=opcoes)

# Passo 1:
navegador.get("https://pages.hashtagtreinamentos.com/inscricao-minicurso-python-automacao-org?origemurl=hashtag_yt_org_minipython_videoselenium")

# Passo 2:
navegador.find_element('xpath', 
                       '//*[@id="section-10356508"]/section/div[2]/div/div[2]/form/div[1]/div/div[1]/div/input').send_keys("Lira")
navegador.find_element('xpath', 
                       '//*[@id="section-10356508"]/section/div[2]/div/div[2]/form/div[1]/div/div[2]/div/input').send_keys("[email protected]")

# Passo 3:
navegador.find_element('xpath', '//*[@id="section-10356508"]/section/div[2]/div/div[2]/form/button').click()

elementos = navegador.find_elements('class name', 'slider-pager-item')
print("Encontramos:", len(elementos), "itens")

Você pode executar essa automação agora e verá que obteremos o resultado como o esperado, sem que o navegador seja aberto.

Resultado da Automação Web com Python

Cuidado ao Criar Automação Web com Python em 2° Plano

Um cuidado de extrema importância ao desenvolver uma automação web com Python para ser executada em segundo plano é, inicialmente, realizar todo o processo com a janela do navegador visível.

Construir o código com a janela do navegador visível é crucial por várias razões. Primeiro, isso permite garantir que a automação esteja funcionando conforme o esperado. Além disso, facilita a identificação e tratamento de quaisquer erros que possam surgir durante o processo.

Após testar e garantir o funcionamento da automação web com Python com a janela do navegador visível, você pode adicionar a opção “–headless=new” para permitir sua execução em segundo plano.

Conclusão – Automação Web com Python – Como Rodar Automação Web em 2° Plano

Na aula de hoje eu te apresentei de maneira rápida e prática como executar uma automação web com Python em segundo plano utilizando a biblioteca Selenium. Essa abordagem permite que você utilize o seu sistema normalmente enquanto a automação está sendo executada.

Como exemplo de automação para essa aula, utilizamos um código construído nesta aula aqui. No entanto, se você deseja aprofundar seus conhecimentos em automações Python, convido você a acessar o nosso Minicurso Gratuito de Python.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador