Python: interagindo com interfaces utilizando imagens

O #dataholic Matheus Nascimento escreveu um artigo sobre a linguagem Python. Bora aprender!



Olá pessoal! Hoje venho apresentar uma solução utilizando Python para quem gosta de aplicar a linguagem na automação de processos, em especial, softwares instalados no computador.


A linguagem de programação Python tem se tornado a mais popular entre as diversas linguagens do mercado, muito disso se dá pela diversidade de soluções que ela propõe e a facilidade de aprendizado.


A automação de processos é um dos mundos onde o Python se destaca, com bibliotecas como selenium e pyautogui, onde é possível criar scripts que imitam a ação humana na execução de atividades em um computador.


Neste artigo falarei sobre a utilização da biblioteca PyAutoGui para interagir com interfaces de usuário e clicar em botões por meio de imagens em png (prometo trazer um artigo sobre automação do navegador utilizando selenium rsrs).


A biblioteca PyAutoGui tem o poder de controlar o mouse e o teclado, com comandos para clicar, digitar, arrastar elementos, dar duplo clique, identificar campos na tela, tirar screenshots, entre diversas outras possibilidades.


Primeiramente, vamos instalar a biblioteca, no prompt de comando ou no terminal da ferramenta (utilizo o VS Code com a extensão do Jupyter Notebook), digite pip install pyautogui, também instale o módulo OpenCV para aplicar o argumento “confidence”, digite pip install opencv-python.


Depois, importe a biblioteca no código e aplique as seguintes configurações:

import pyautogui as p

p.PAUSE = 3

p.FAILSAFE = False

O comando PAUSE é utilizado para definir o intervalo em segundos de cada execução da linha de código, neste caso, a execução de uma etapa a outra possui um intervalo de três segundos.

FAILSAFE é habilitado por padrão para que você possa facilmente interromper a execução de seu programa movendo manualmente o mouse para o canto superior esquerdo da tela. Assim que o mouse estiver neste local, pyautogui lançará uma exceção e sairá, portanto, aplicamos False para desativar.

O comando locateCenterOnScreen é o responsável por identificar elementos na tela por meio da utilização de imagens.

O exemplo que irei utilizar irá focar a área de trabalho e identificar o ícone do Google Chrome por meio do print retirado.


Utilizando a ferramenta de captura do Windows, registre o ícone (ou botão) em um arquivo png, certifique-se de deixá-lo bem centralizado na imagem, e para prevenir erros, mantenha o nome do arquivo sempre em minúsculo (chrome.png).

Salve o print na mesma pasta onde o script está sendo desenvolvido.



Então, assim ficará a construção da etapa do código que identifica a imagem e faz a interação com o ícone.

p.hotkey(‘win’,’m’)

chrome = p.locateCenterOnScreen(‘chrome.png’, confidence = 0.9)

p.doubleClick(chrome)

Apliquei hotkey para focar a área de trabalho, e por meio do comando locateCenterOnScreen adicionando uma confiança de 0.9, armazenei a posição do ícone em uma variável chamada chrome, e por fim, com o doubleClick o navegador é aberto. Veja o código funcionando no vídeo abaixo.



Utilizei o ícone do Google Chrome apenas para exemplificação, porém, esta solução pode ser aplicada para botões em sistemas, campos que você precisa clicar e escrever um texto, exportar arquivos e assim por diante.


Espero que tenham gostado do conteúdo e fico à disposição para conversarmos mais sobre como utilizar o python na automação de processos!

Curta, comente e compartilhe com os amigos. 💙