DEV Community

Maurício Silva
Maurício Silva

Posted on • Updated on

Apredendo a utilizar a ferramenta RPAPY com exemplo

Alt Text

Introdução

Existem inúmeras formas de se apreender uma nova tecnologia, biblioteca ou ferramenta, mas na minha opinião, a forma mais fácil e direta é o aprendizado por meio de exemplos. Então neste tutorial vou ensinar como usar a ferramenta rpapy, para implementação de automações desktop com python, em ambiente windows, e adivinhem como? isso mesmo que você pensou... por meio de uma implementação de exemplo, existente na própria ferramenta.

Preparando o Ambiente

A primeira coisa que você precisa fazer é, escolher o IDE ou o editor de texto de sua preferência que será utilizado para o desenvolvimento dos scripts de automação, porém para este tutorial utilizarei o VsCode com alguns plugins (Python, Robot Framework Intellisense, Hyper Term Theme , Pylance e Material Icon Theme), entretanto, a instalação do IDE e dos plugins estão fora do escopo deste tutorial, contudo a instalação é bem fácil, bastando acessar o site oficial do VsCode e seguir as orientações do guia do usuário.
Após concluída a instalação, crie um diretório (exemplo: rpa-project-exemplo/) para o projeto e abra-o com o IDE.

Antes de começar a desenvolver automações ou qualquer outro tipo de projeto em python, será necessário criar um ambiente virtual, para instalação da ferramenta rpapy e suas dependências, pois desta forma será possível isolar as dependências de cada projeto, bem como evitar o conflito entre versões das mesmas bibliotecas. Acesse o README.md do repositório github ou assista este vídeo no canal codigo100cera, onde é explicado o processo de instalação da ferramenta, desde a criação do ambiente virtual até a sua ativação.

Implantando a Automação de Exemplo

A ferramenta rpapy vem com um script de automação desktop de exemplo, o qual desenha e pinta na janela do programa mspaint da Microsoft. Essa automação é construída com scripts python e robotframework, com isso, quero mostrar o quanto pode ser flexível e poderoso utilizá-los em conjunto, e para que a RPA funcione, será preciso realizar alguns passos.

1) Primeiro você Precisa executar a ferramenta, então, se tudo ocorreu bem na preparação do ambiente, após a execução do comando rpapy no terminal, será exibido um menu de teclas de atalho como apresentado a seguir:

(rpa-project-exemplo-env)C:\rpa-project-exemplo>rpapy
Enter fullscreen mode Exit fullscreen mode
***TURN ON AGENTPY***
        **************TECLAS DE ATALHO**************
        <CTRL>+<ALT>+P: CAPTURAR IMAGEM OU OCR
        <CTRL>+<ALT>+R: ALTERAR NOME DO ARQUIVO
        <CTRL>+<ALT>+B: ALTERNAR ENTRE OS BACKENDS
        <CTRL>+I:       INSPECIONAR ELEMENTO DE UI
        <CTRL>+<CMD>+C: EXIBIR CONFIGURAÇÃO ATUAL
        <CTRL>+<CMD>+E: UPLOAD IMPLEMENTAÇÃO EXEMPLO
        <CTRL>+<CMD>+X: DESLIGAR O AGENTE
        ********************************************
X:  407 Y:  360
Enter fullscreen mode Exit fullscreen mode

Uma caixa de diálogo também será exibida solicitando a inserção do nome do arquivo de script onde será implementado o código de automação. Nela serão aceitas apenas nome de arquivos com as extensões .py ou .robot, por padrão ele vem com o nome main.robot, para este tutorial deixe o nome e extensão sugeridos pela ferramenta.

Se ocorreu tudo bem neste ponto a ferramenta já criou uma estrutura básica como a seguir:

-rpa-project-exemplo/
├── .env
├── resources/
│   ├── images/
│   └── keywords.robot
├── rpa-project-exemplo-env/
└── tasks/
    └── main.robot
Enter fullscreen mode Exit fullscreen mode

Agora vamos carregar a implementação de exemplo pressionando a combinação de teclas <CTRL+CMD+E>.

<CTRL>+<CMD>+E: UPLOAD IMPLEMENTAÇÃO EXEMPLO
Enter fullscreen mode Exit fullscreen mode

Após o acionamento da funcionalidade será exibido uma sequência de caixas de mensagens com avisos e decisões sobre substituições de arquivos que poderão ocorrer.

Alt Text

Leia com atenção todos os avisos e clique na opção OK para avançar ou CANCEL.

Alt Text

Muita atenção quando for solicitado a substituição de algum arquivo, se não desejar que o arquivo seja substituído, renomeie o arquivo que está no projeto antes de confirmar a substituição e depois continue.

Alt Text

A funcionalidade para carregar a implementação de exemplo sempre solicita a autorização para substituir os arquivos marcados com asterisco abaixo, quando estes já existirem:

-rpa-project-exemplo/
├── resources
│   ├── custom_keywords.py*
│   ├── desenhos
│   │   ├── borboleta.txt*
│   │   └── robotframework.txt*
│   └── keywords.robot*
└── tasks
    └── main.robot*
Enter fullscreen mode Exit fullscreen mode

Quando concluído, o carregamento da implementação de exemplo, todos os scripts estão prontos para a execução, mas ainda será necessário efetuar a captura das imagens dos elementos de interface, em que serão aplicados às ações de teclado e mouse pela automação, desta forma será necessário realizar mais alguns passos.

2) Altere e salve o arquivo .env após tirar o # que está na frente das variáveis de ambiente MAX_WAIT_MANUTENCAO e VERIFICAR_MODO.

###VARIAVEIS DE AMBIENTE PYTHON-DOTENV

#RESOURCES_DIR_NAME=resources
#RESOURCES_KEYWORDS_FILE_NAME=keywords.robot
#IMAGES_DIR_NAME=images
#IMAGES_ERROR_DIR_NAME=images_error
#TASKS_DIR_NAME=tasks
MAX_WAIT_MANUTENCAO=5
VERIFICAR_MODO=True
#ARQUIVO_TEMPORARIO_ATIVO=False
#NOME_ARQUIVO_TEMPORARIO=temp.txt
Enter fullscreen mode Exit fullscreen mode

A variável de ambiente VERIFICAR_MODO, ativa a verificação da escolha do modo manutenção toda vez que o script é iniciado, e a variável MAX_WAIT_MANUTENCAO, quando ativado o modo manutenção, tenta encontrar o elemento na tela em que irá aplicar alguma ação de teclado ou mouse, com a espera máxima em segundos que foi atribuida, se não for possível encontrar a imagem, ele solicitara que a existente seja substituída no projeto de forma iterativa, desta forma basta seguir os avisos que são emitidos com atenção.

3) Abra um novo terminal na raiz do projeto, ative o ambiente virtual e execute o seguinte comando:

(rpa-project-exemplo-env)C:\rpa-project-exemplo>robot -d log tasks
Enter fullscreen mode Exit fullscreen mode

Em seguida será apresentado uma caixa de mensagem perguntando se pretende rodar a automação no modo manutenção, clique em sim, para ativar a funcionalidade e com isso atualizar o diretório images e concluir a instalação da automação de exemplo, incluindo todas as imagens necessárias. Essa é uma funcionalidade muito importante, porque facilita a implantação e atualização da automação em outros computadores de forma interativa sem a necessidade de manipulação do código implementado.

Alt Text

Assim que ativado o modo manutenção, no terminal será apresentado a saída abaixo.

(rpa-project-exemplo-env)C:\rpa-project-exemplo>robot -d log tasks
==================================================================
Tasks
==================================================================
Tasks.Main :: Documentação da Suite de Tasks Robot Framework
==================================================================
Tarefa principal                                  Hello Everybody!

Enter fullscreen mode Exit fullscreen mode

4) A primeira ação da automação é abrir e maximizar o software de desenho mspaint, em seguida ele verificará se o ícone da barra de título do software foi encontrado, como ainda não existe nenhuma imagem no diretório, ele apresentará uma caixa de mensagem, informando o nome da imagem a ser alterada, e mostrará a visualização de uma imagem provisória com o aviso de imagem não encontrada, para continuar é preciso confirmar com um clique no botão OK da caixa de diálogo.

Alt Text

5) O processo de alteração da imagem é simples, pois basta ler as mensagens com atenção e efetuar as ações necessárias.
A próxima mensagem irá solicitar qual das seguintes opções deseja executar: IMG|IMG_OCR|OCR|CANCEL, para essa implantação será necessário apenas acionar a opção IMG.

Alt Text

6) Antes de selecionar o retângulo, para realizar a captura da imagem do elemento de interface, será apresentado uma caixa de mensagem com a opção de tempo de espera de 5s ou 10s antes de ser congelada a tela para a seleção.

Alt Text

7) Durante esse período de espera, você pode acionar algum menu ou qualquer elemento da interface para que no momento do congelamento da tela tudo esteja no ponto para a seleção do retângulo, assim que congelado, o ícone do mouse será alterado para um sinal de +, a partir desse momento é só pressionar o botão esquerdo do mouse no elemento da tela e arrastar para formar um retângulo sobre o elemento que será capturado uma imagem dele.

Alt Text

8) Agora será necessário indicar a região na tela, onde o elemento selecionado no passo anterior, deverá ser procurado pela automação. Então clique em OK e selecione retângulo da área que determinará região, observando que o tamanho da região deve ser maior que o tamanho da seleção do elemento de interface capturado. Isso serve para otimizar a procura da imagem pela automação, além de permitir uma maior flexibilidade com relação às coordenadas em que o elemento poderá surgir na tela sem causar erros.

Alt Text

Neste ponto selecione a região, que neste caso será área do retângulo pontilhado como na imagem a seguir.

Alt Text

O tamanho da região pode ser até o tamanho total da tela primária do computador.

9) Após a seleção será apresentado outra caixa de mensagem de confirmação, até este ponto será possível cancelar a alteração da imagem, mas depois de confirmado, não mais, então será apresentada a quantidade de imagens que serão substituídas.

Alt Text

10) A seguir Confirme em "SIM" para eliminar todas as imagens com o mesmo nome e "NAO" para manter todas.

Alt Text

11) Por fim será verificado se deseja visualizar a imagem que acabou de ser capturada, se optar em OK abrirá uma janela de visualização que fechará automaticamente após 5 segundos.

Alt Text

Após cada captura completada a ação programada é executada no elemento, esse é o ciclo completo para adição de imagens da automação no modo manutenção, agora basta repetir esses passos até completar todas as imagens necessárias para a instalação da implementação de exemplo.

Existem algumas particularidades quanto a captura de imagens de alguns componentes neste exemplo que irei descrever.

Os elementos campo de texto devem ser capturadas as imagens dos retângulos apenas dos rótulos e não do campo todo, como exibido na imagem a seguir, e no passo seguinte não esquecer de sempre selecionar uma região maior do que o tamanho do elemento capturado.

Alt Text

Um outro ponto que geralmente as pessoas travam, é exatamente no momento da captura do item do menu arquivo quando no modo manutenção, porque é necessário efetuar o clique no menu, para que ele expanda e seja possível que a automação identifique e efetue a ação. Como o clique, no menu arquivo, é realizado pela automação no passo anterior, se você não efetuar um clique manualmente, a automação não será capaz de encontrar a imagem na tela, porque o menu estará contraído. Desta forma, logo após a captura do item de menu propriedades, você deverá clicar rapidamente, mais precisamente antes de 5 segundos, pois é o tempo padrão configurado no arquivo .env para o tempo máximo de tentativas de busca da imagem na tela, quando no modo manutenção, desta forma se precisar de mais tempo basta mudar o valor da variável de ambiente MAX_WAIT_MANUTENCAO e reiniciar o script.

Alt Text

Quando completado todas as capturas de imagens, provavelmente o desenho no mspaint estará pronto e a implantação concluída.

Altere o arquivo .env comentando com #, como a seguir:

###VARIAVEIS DE AMBIENTE PYTHON-DOTENV

#RESOURCES_DIR_NAME=resources
#RESOURCES_KEYWORDS_FILE_NAME=keywords.robot
#IMAGES_DIR_NAME=images
#IMAGES_ERROR_DIR_NAME=images_error
#TASKS_DIR_NAME=tasks
#MAX_WAIT_MANUTENCAO=5
#VERIFICAR_MODO=True
#ARQUIVO_TEMPORARIO_ATIVO=False
#NOME_ARQUIVO_TEMPORARIO=temp.txt

Enter fullscreen mode Exit fullscreen mode

Agora feche todas as janelas abertas do mspaint e execute novamente a implementação digitando o seguinte comando no terminal.

(rpa-project-exemplo-env)C:\rpa-project-exemplo>robot -d log tasks
Enter fullscreen mode Exit fullscreen mode

Se tudo der certo, após a conclusão da automação a imagem estará desenhada na janela do mspaint e será apresentado no terminal o seguinte resultado.

Alt Text

Além do desenho dos logos, existe o desenho geométrico de uma borboleta, para que seja trocado a imagem que será desenhada, basta alterar a atribuição do valor robotframework para borboleta na variável ${NOME_IMAGEM} no arquivo tasks/main.robot

${NOME_IMAGEM}      robotframework
Enter fullscreen mode Exit fullscreen mode

E execute novamente a automação.

(rpa-project-exemplo-env)C:\rpa-project-exemplo>robot -d log tasks
Enter fullscreen mode Exit fullscreen mode

A automação deverá se comportar semelhantemente a execução apresentada neste gif animado, contido no README.me do projeto no github.

Conclusão

Neste tutorial não foram abordados todos os detalhes da sintax do robotframework, que poderá ser encontrado no guia do usuário do robotframework, e nem todas as funcionalidades da ferramenta rpapy, contudo assim que possível, criarei alguns vídeos no canal do youtube para explicar mais sobre essas elas.

Agradeço por você ter chegado até o fim deste tutorial, mas não deixe de seguir os seguintes passos: estude o código gerado, faça alterações e teste as alterações, porque se aprende, ainda muito mais, fazendo.

Então se você gostou deste tutorial entre no grupo do telegram, me siga nas redes sociais, entre no canal, inscreva-se e toque o sininho, para ser notificado quando for postados novos conteúdos.

Top comments (0)