Ferramenta profissional desenvolvida em Python para automação completa de formulários Microsoft Forms. Sistema robusto com interface gráfica intuitiva que permite upload de arquivos CSV/TXT e execução de automação inteligente com detecção automática de tipos de campo.
- Identificação automática de todos os tipos de campo
- Análise contextual de labels e estruturas
- Suporte completo para campos condicionais
- Mapeamento inteligente CSV ↔ Formulário
- Interface moderna com Tkinter e cores aprimoradas
- Upload drag-and-drop de arquivos
- Visualização em tempo real do progresso
- Logs detalhados de todas as atividades
- Salvamento automático de todos os registros processados
- Visualização interativa de dados em tabelas
- Exportação de dados para CSV e TXT
- Histórico completo com timestamps
- Estatísticas em tempo real de registros salvos
- Sistema de ajuda completo integrado na interface
- Guia passo a passo para usar o software
- Documentação detalhada dos campos CSV
- Explicação de todas as funcionalidades
- Dicas e boas práticas de uso
- Preenchimento inteligente de todos os tipos de campo
- Estratégias específicas para radio buttons complexos
- Detecção de campos condicionais após preenchimento
- Múltiplas tentativas para máxima confiabilidade
- Salvamento automático no banco após cada registro
- ✅ Texto (text, email, tel, number)
- ✅ Área de texto (textarea)
- ✅ Data (date, datetime-local)
- ✅ Radio buttons (com estratégia específica para municípios)
- ✅ Checkboxes
- ✅ Select/Dropdown (incluindo MS Forms)
- ✅ Combobox/Listbox
- ✅ Upload de arquivos
- Python 3.8 ou superior
- Google Chrome instalado
- ChromeDriver (será gerenciado automaticamente)
# Navegar para o diretório do projeto
cd FormAutomationPython
# Instalar dependências
pip install -r requirements.txt
# Ou instalação individual
pip install selenium chardet pandas colorlog webdriver-managerO sistema gerencia automaticamente o ChromeDriver, mas se preferir manual:
- Baixar ChromeDriver compatível com sua versão do Chrome
- Adicionar ao PATH do sistema
python main.py- URL do Formulário: Cole a URL do Microsoft Forms
- Arquivo de Dados: Selecione arquivo CSV ou TXT
- Opções:
- ☑️ Submeter automaticamente
- ☑️ Modo headless (sem interface visual)
- ⚡ Velocidade: Lenta/Normal/Rápida
- 🔍 Analisar Formulário: Detecta campos sem preencher
- 🚀 Iniciar Automação: Executa automação completa
- ⏹️ Parar Automação: Interrompe processo
- 📚 Tutorial: Abre guia completo de como usar o software
- 📊 Ver Banco de Dados: Visualiza dados salvos e permite exportação
- Clique no botão "📚 Tutorial" para acessar:
- Introdução ao software
- Documentação detalhada dos campos CSV
- Guia passo a passo de uso
- Informações sobre banco de dados
- Dicas e boas práticas
- Clique no botão "📊 Ver Banco de Dados" para:
- Visualizar todos os registros salvos
- Alternar entre tabelas de Atendimentos e Boa Prática
- Exportar dados para CSV ou TXT
- Ver estatísticas de registros
- Limpar dados (com confirmação)
FormAutomationPython/
├── main.py # Interface gráfica principal
├── src/
│ ├── form_automation.py # Motor principal de automação
│ ├── field_detector.py # Detector inteligente de campos
│ ├── field_filler.py # Preenchedor de campos
│ ├── database/
│ │ ├── __init__.py
│ │ └── db_manager.py # Gerenciador de banco SQLite3 (NOVO!)
│ ├── gui/
│ │ ├── __init__.py
│ │ ├── tutorial_window.py # Janela de tutorial (NOVO!)
│ │ └── data_viewer_window.py # Visualizador de dados (NOVO!)
│ └── utils/
│ ├── logger.py # Sistema de logging
│ ├── config.py # Configurações
│ └── data_processor.py # Processador de dados CSV
├── data/ # Arquivos de dados e banco SQLite3
│ ├── atendimentos-naf.csv
│ ├── boa-pratica-naf.csv
│ └── form_data.db # Banco de dados SQLite3 (NOVO!)
├── logs/ # Logs da aplicação
├── config/ # Arquivos de configuração
├── docs/ # Documentação adicional
└── requirements.txt # Dependências Python
Estado,Municipio,DataAtendimento,ModalidadeAtendimento,TipoUsuario,AtendimentoConclusivo,TipoAtendimento
Alagoas - AL,AL - SEUNE - Maceió,28/09/2025,Remoto,Microempreendedor Individual,Sim,Auxílio à elaboração e orientações sobre a Declaração de Ajuste Anual do IRPF
Alagoas - AL,AL - UNEAL - Arapiraca,29/09/2025,Presencial,Pessoa Física,Não,Auxílio à inscrição e Informações cadastrais de CPFO sistema mapeia automaticamente baseado em:
- Correspondência de nomes entre colunas CSV e labels do formulário
- Análise de conteúdo dos dados de amostra
- Padrões específicos para cada tipo de campo
- Posição relativa dos campos no formulário
- Lenta: Máxima confiabilidade (2-3s entre campos)
- Normal: Equilibrio performance/confiabilidade (1s entre campos)
- Rápida: Máxima velocidade (0.5s entre campos)
- Detecção automática de instituições (Estácio, SEUNE, UNEAL, CESMAC)
- Múltiplas estratégias de busca para radio buttons
- Busca global por texto quando necessário
- Conversão automática DD/MM/AAAA → AAAA-MM-DD
- Suporte a múltiplos formatos de entrada
- Validação de datas
- Todos os registros processados são automaticamente salvos no banco de dados
- Persistência de dados mesmo se a automação for interrompida
- Histórico completo com timestamps de inserção
Tabela: atendimentos_naf
- id, estado, municipio, data_atendimento, modalidade_atendimento
- tipo_usuario, atendimento_conclusivo, tipo_atendimento, data_insercao
Tabela: boa_pratica_naf
- id, titulo, data_ocorrencia, trimestre, link_acesso, estado
- municipio, responsavel, email_responsavel, grupo_educacional
- tipo_boa_pratica, acao_sazonal, categorias, data_insercao
- ✅ Visualização interativa de todos os registros
- ✅ Exportação para CSV e TXT
- ✅ Estatísticas em tempo real
- ✅ Limpeza de dados com confirmação
- ✅ Filtro por tipo de formulário
- Arquivo do banco:
data/form_data.db - Criado automaticamente na primeira execução
- Portável e pode ser copiado para backup
- Logs em tempo real na interface
- Arquivos de log detalhados em
/logs/ - Níveis: INFO, WARNING, ERROR, SUCCESS, DEBUG
- Logs de banco de dados: Confirmação de salvamento
- Campos detectados: Número total de campos identificados
- Taxa de sucesso: Percentual de campos preenchidos com sucesso
- Tempo de execução: Duração total da automação
- Detalhes por campo: Log específico de cada preenchimento
- Registros salvos: Confirmação de salvamento no banco
- ✅ Aguardar carregamento completo do formulário
- ✅ Verificar se URL está correta
- ✅ Tentar modo não-headless para debug visual
- ✅ Verificar formato do arquivo CSV
- ✅ Confirmar que colunas têm nomes descritivos
- ✅ Usar primeiro o modo "Analisar Formulário"
- ✅ Verificar se valor está no formato correto
- ✅ Para radio buttons, confirmar se opção existe
- ✅ Aumentar velocidade para "Lenta" para debug
- ✅ Instalar:
pip install webdriver-manager - ✅ Atualizar Chrome para versão mais recente
- ✅ Verificar conexão com internet
- Modo não-headless: Ver automação em tempo real
- Logs detalhados: Verificar arquivo em
/logs/ - Modo análise: Usar "Analisar Formulário" primeiro
- ✅ Todos os dados permanecem no computador local
- ✅ Nenhuma transmissão para servidores externos
- ✅ Logs criptografados (opcional)
- ✅ Respeita robots.txt e políticas do site
- ✅ Velocidade controlada para não sobrecarregar servidor
- ✅ User-agent identificado como automação
Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Contribuições são bem-vindas! Por favor:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Para suporte e dúvidas:
- 📧 Email: [inserir email de suporte]
- 📋 Issues: Use o sistema de issues do GitHub
- 📖 Documentação: Consulte a pasta
/docs/
- Selenium - Framework de automação web
- Tkinter - Interface gráfica
- Python Community - Ecossistema incrível
Desenvolvido com ❤️ usando Python + Selenium