3 MANEIRAS DE FAZER RPA COM PYTHON
Nesta postagem, cobriremos alguns pacotes para fazer automação de processos robóticos com Python.
A automação de processos robóticos, ou RPA, é o processo de automatizar cliques do mouse e pressionamentos de teclado – ou seja, simular o que um usuário humano faria.
O RPA é usado em uma variedade de aplicações, incluindo entrada de dados, contabilidade, finanças e muito mais.
Estaremos cobrindo pynput , pyautogui e pywinauto . Cada um desses três pacotes pode ser usado como ponto de partida para construir seu próprio aplicativo RPA, bem como construir aplicativos de teste de IU.
pynput
O primeiro pacote que discutiremos é o pynput . Uma das vantagens do pynput é que funciona tanto no Windows quanto no macOS. Outro recurso interessante é que ele tem a funcionalidade de monitorar a entrada do teclado e do mouse. Vamos começar com pynput instalando-o com pip:
pip install pynput
Se tiver erro durante a instalação de uma olhadinha neste poste.
Depois de instalá-lo, você pode começar importando as classes Controller e Button . Em seguida, criaremos uma instância da classe Controller , que chamaremos de mouse . Isso simulará o mouse do seu computador para permitir que você clique em botões de forma programática e mova o mouse pela tela.
from pynput.mouse import Button, Controller
mouse = Controller()
A seguir, vamos examinar alguns comandos simples. Para clicar com o botão direito ou esquerdo, podemos usar a classe Button importada acima.
# Clique esquerdo do mouse
mouse.press(Button.left)
# Clique direito do mouse
mouse.press(Button.right)
Para clicar duas vezes, você só precisa adicionar o número dois como o segundo parâmetro.
mouse.press(Button.left, 2)
Também podemos mover o ponteiro do mouse para uma posição diferente usando o método move .
mouse.move(50, -50)
mouse.move(100, -200)
pynput também pode controlar o teclado. Para fazer isso, precisamos importar a classe Key
from pynput.keyboard import Key
Para pressionar algum texto, você pode usar o método keyboard.type.
keyboard.type("Teste JOBU")
Como mencionado acima, o pynput também pode monitorar os movimentos do mouse e os pressionamentos do teclado. Para saber mais sobre essa funcionalidade e pynput , verifique este link.
Pyautogui
Talvez o pacote mais conhecido para simular cliques do mouse e entradas do teclado seja a biblioteca pyautogui . pyautogui funciona em Windows, Linux e macOS. Se você não o instalou, pode obtê-lo usando pip:
pip install pyautogui
O pyautogui também é fácil de usar. Por exemplo, se você deseja simular a digitação de uma string de texto, basta usar o método typewrite :
pyautogui.typewrite("test pyautogui!")
Para clicar com o botão esquerdo do mouse, você pode usar o método de clique . Para clicar com o botão direito, você pode usar o método rightClick .
# left-click
pyautogui.click(100, 200)
# right-click
pyautogui.rightClick(100, 200)
Procurando uma imagem na tela
Um dos recursos mais legais do pyautogui é que ele pode pesquisar uma imagem na tela do computador. Isso é realmente útil se você precisar encontrar um botão específico para clicar. Você pode pesquisar uma imagem inserindo o nome do arquivo de imagem no método locateOnScreen . A função retorna a coordenada top esquerda junto com a altura e largura da imagem identificada.
location = pyautogui.locateOnScreen("random_image.png")
Para obter o centro da imagem identificada, use o método center . Então, você pode usar o clique método para clicar no centro da imagem identificada – neste caso, um botão na tela.
center = pyautogui.center(location)
pyautogui.click(center)
Às vezes, uma imagem pode não ser encontrada exatamente na tela. Nesse caso, você pode adicionar o parâmetro de confiança para locateOnScreen para dar ao Python um nível de confiança de identificação da imagem.
pyautogui.locateOnScreen("random_image.png", confidence = 0.95)
Fazendo uma captura de tela
Você pode fazer uma captura de tela com o pyautogui usando o método de captura de tela . Passar um nome de arquivo salvará a captura de tela nesse arquivo.
s = pyautogui.screenshot("exemplodeimagem.png")
Também é possível fazer uma captura de tela de uma região específica, em vez da tela inteira:
pyautogui.screenshot(region = c(0, 0, 100, 200))
pywinauto
No Windows, outra opção que podemos examinar é a biblioteca pywinauto. A principal desvantagem dessa biblioteca é que ela não funciona no macOS ou no Linux. No entanto, ele também oferece algumas vantagens interessantes para usuários do Windows. Primeiro, sua sintaxe é orientada a objetos – foi feita para ser mais Pythônica. Em segundo lugar, devido ao seu design, a biblioteca pode facilitar a execução de certas tarefas, como clicar em botões específicos ou localizar itens de menu em um aplicativo.
Por exemplo, vamos começar abrindo o Bloco de notas, digitando algum texto e salvando o arquivo. Podemos fazer isso usando o trecho de código abaixo. Aqui, iniciamos o Notepad usando a classe Application . Em seguida, nos referimos ao arquivo do Bloco de notas que acabamos de abrir por “UnitledNotepad”. Podemos usar Edit.type_keys para começar a digitar o texto.
from pywinauto.application import Application
app = Application(backend="uia").start("notepad.exe")
app.UntitledNotepad.Edit.type_keys("Starting notepad...")
app.UntitledNotepad.menu_select("File->SaveAs")
sub_app=app.UntitledNotepad.child_window(title_re = "Save As")
sub_app.FileNameCombo.type_keys("test_file.txt")
sub_app.Save.click()
Saiba mais sobre pywinauto verificando este link .
Conclusão
É isso para este post! Cobrimos três pacotes para fazer automação de processos robóticos com Python.
Confira meus outros posts Python aqui .