Este projeto implementa um assistente virtual automatizado que lê uma lista de tarefas de um arquivo CSV e executa ações automatizadas no computador, como clicar, digitar, pressionar teclas, aguardar e fazer scroll.
automacao_RPA/
├── main.py # Script principal
├── requirements.txt # Dependências do projeto
├── README.md # Este arquivo
├── core/ # Módulos principais
│ ├── __init__.py
│ ├── actions.py # Implementação das ações
│ ├── conditions.py # Condições de execução
│ ├── executor.py # Executor principal
│ ├── report.py # Geração de relatórios
│ └── utils.py # Utilitários diversos
├── data/ # Dados e configurações
│ ├── tasks.csv # Arquivo com lista de tarefas
│ ├── positions.json # Mapeamento de posições na tela
│ └── output/ # Relatórios gerados
├── tools/ # Ferramentas auxiliares
│ ├── capture_pos.py # Captura de posições do mouse
│ └── test_clicks.py # Testes de cliques
└── docs/ # Documentação adicional
└── AP1 - RPA.pdf
- Clone o repositório
- Instale as dependências:
pip install -r requirements.txtPara configurar posições de clique, execute:
python tools/capture_pos.pyUse esta ferramenta para capturar posições do mouse em tempo real e salve no arquivo data/positions.json.
python main.pyO arquivo data/tasks.csv deve conter as colunas:
- Tarefa: Descrição da ação
- Tipo: Tipo de ação (
click,texto,tecla,espera,scroll) - Dado: Dados para a ação (nome da posição, texto, tecla, tempo ou quantidade)
- Condicional: Condição para executar ou não as tarefas (opcional, executa se estiver vazio)
- Nota: Detalhamento das ações (opcional)
Exemplo de arquivo CSV:
Tarefa,Tipo,Dado,Condicional,Nota
Abrir navegador,click,navegador_icone,,Clicar no ícone do navegador
Aguardar carregamento,espera,3,ultimo_sucesso==true,Esperar 3 segundos para a página carregar
Clicar na barra de endereço,click,barra_endereco,ultimo_sucesso==true,Interagir com a barra de endereço
Digitar URL,texto,https://www.google.com,ultimo_sucesso==true,Digitar o endereço do site
Pressionar Enter,tecla,enter,ultimo_sucesso==true,Navegar até o site
Aguardar página carregar,espera,2,ultimo==sucesso==true,Esperar 2 segundos para a página carregar
Clicar na caixa de pesquisa,click,caixa_pesquisa,ultimo_sucesso==true,Interagir com a caixa de pesquisa
Digitar termo de pesquisa,texto,Python RPA,ultimo_sucesso==true,Digitar o texto que será pesquisado
Pressionar Enter para pesquisar,tecla,enter,ultimo_sucesso==true,Realizar a pesquisa
Aguardar resultados,espera,3,ultimo_sucesso==true,Esperar 3 segundos pelo resultado
- click: Clica em uma posição mapeada no arquivo
positions.json - texto: Digita o texto especificado
- tecla: Pressiona uma tecla específica
- espera: Aguarda o tempo especificado (em segundos)
- scroll: Rola a página para baixo ou para cima
Após a execução, um relatório é gerado em data/output/report_execucao.xlsx contendo:
- Tarefa executada
- Status (Sucesso/Falha/Erro)
- Tempo de execução
- Detalhes de erro (se houver)
Ferramenta para capturar coordenadas de elementos na tela em tempo real.
Ferramenta para testar as posições configuradas no arquivo positions.json.
- executor.py: Módulo principal que coordena a execução das tarefas
- actions.py: Implementa as diferentes ações (click, texto, tecla, espera, scroll)
- conditions.py: Define condições e validações para execução
- report.py: Responsável pela geração de relatórios
- utils.py: Funções utilitárias compartilhadas
O arquivo data/positions.json deve conter um mapeamento de nomes para coordenadas:
{
"navegador_icone": {"x": 100, "y": 50},
"barra_endereco": {"x": 400, "y": 100},
"caixa_pesquisa": {"x": 500, "y": 200}
}- Estruturas condicionais (if, elif, else) e laços de repetição (for)
- Criação e uso de funções personalizadas
- Leitura de arquivos CSV com pandas
- Geração de relatórios em Excel com openpyxl
- Uso do PyAutoGUI para automação
- Captura de posições de elementos na tela
- Arquitetura modular com separação de responsabilidades
- pandas: Manipulação de dados e arquivos CSV
- openpyxl: Geração de relatórios Excel
- pyautogui: Automação de mouse e teclado
- Ajuste as posições no arquivo
data/positions.jsonconforme a resolução da sua tela - O projeto utiliza uma arquitetura modular para facilitar manutenção e extensão
- Teste sempre as posições capturadas antes de executar automações importantes
- O projeto é para fins didáticos e pode ser adaptado para outros fluxos de automação
- Verifique se todas as dependências estão instaladas corretamente
- Certifique-se de que as posições em
positions.jsonestão corretas para sua tela - Execute
tools/test_clicks.pypara verificar se os cliques estão funcionando - Consulte os logs de erro no relatório gerado em
data/output/