Sistema de automação desenvolvido em Python usando Selenium WebDriver para automatizar o processo de emissão de notas fiscais através de formulários web.
Este projeto consiste em uma automação que:
- Faz login automaticamente em sistema de emissão de NF
- Preenche formulários web com dados de nota fiscal
- Gera arquivos XML com os dados da nota fiscal
- Utiliza interface web simples para coleta de dados
- ✅ Automação de Login: Login automático no sistema web
- 📝 Preenchimento Automático: Preenchimento de todos os campos da NF
- 🌐 Interface Web: Formulário HTML para inserção de dados
- 📄 Geração de XML: Criação automática de arquivo XML da nota
- 🔄 Selenium WebDriver: Automação completa do navegador
- 📱 Interface Responsiva: Formulário adaptável para diferentes telas
- Python 3.12.2 - Linguagem principal
- Selenium WebDriver - Automação do navegador
- ChromeDriver - Driver para Google Chrome
- webdriver-manager - Gerenciamento automático do driver
- HTML5 - Estrutura das páginas
- CSS3 - Estilização dos formulários
- JavaScript - Geração do XML e interatividade
emissaoNF.ipynb- Jupyter Notebook com código de automaçãologin.html- Página de login do sistemaindex.html- Formulário principal de emissão da NFnota.xml- Arquivo XML gerado automaticamente
Antes de executar o projeto, certifique-se de ter instalado:
- Python 3.12 ou superior
- Google Chrome (versão atualizada)
- Jupyter Notebook ou Jupyter Labgit clone https://github.com/Laviniamadeira/EmissaoNF.git
cd EmissaoNFpip install selenium webdriver-managerpip install jupyterjupyter notebookNavegue até emissaoNF.ipynb e execute as células
-
Abra o Jupyter Notebook:
jupyter notebook emissaoNF.ipynb
-
Execute as células sequencialmente:
- A automação irá abrir o Chrome automaticamente
- Fará login com credenciais pré-definidas
- Preencherá todos os campos da nota fiscal
- Clicará no botão "Emitir nota"
- Abra o arquivo
login.htmlno navegador - Faça login (qualquer credencial será aceita)
- Preencha o formulário com os dados da NF:
- Dados do destinatário
- Descrição do produto/serviço
- Valores e quantidades
- Clique em "Emitir nota" para gerar o XML
Login: lucas@gmail.com
Senha: 12345
Nome: Lucas
Endereço: Endereço
Bairro: Bairro
Município: Município
CEP: CEP
UF: SP
CNPJ: 11999
Inscrição: olá
Descrição: produto
Quantidade: 10
Valor Unitário: 5
Total: 300
EmissaoNF/
├── emissaoNF.ipynb # Script principal de automação
├── login.html # Página de login
├── index.html # Formulário de emissão da NF
├── nota.xml # XML gerado automaticamente
├── .gitattributes # Configurações do Git
└── README.md # Este arquivo
O script utiliza:
- ChromeDriverManager: Gerencia automaticamente a versão do driver
- Localização por XPATH: Para encontrar elementos específicos
- Localização por NAME: Para campos de formulário
- Localização por ID: Para elementos únicos
- JavaScript nativo para criar estrutura XML
- Download automático do arquivo gerado
- Estrutura de dados compatível com padrões fiscais
- ✅ Nome/Razão Social
- ✅ Endereço completo (Endereço, Bairro, Município, CEP, UF)
- ✅ CNPJ/CPF
- ✅ Inscrição Estadual
- ✅ Descrição do produto/serviço
- ✅ Quantidade, valor unitário e total
- Credenciais: Altere o login e senha no código
- Dados da NF: Modifique os dados conforme necessário
- XPaths: Podem precisar de ajuste conforme o site alvo
- Funciona especificamente com a estrutura HTML fornecida
- Requer ajustes para diferentes sistemas de NF
- Depende da estabilidade da interface web
# No arquivo emissaoNF.ipynb, modifique as linhas:
navegador.find_element(By.XPATH,'/html/body/div/form/input[1]').send_keys('SEU_EMAIL')
navegador.find_element(By.XPATH,'/html/body/div/form/input[2]').send_keys('SUA_SENHA')
# ... outros campos- Analise a estrutura HTML do sistema alvo
- Ajuste os XPaths e seletores
- Modifique os dados conforme necessário
- Execute o notebook célula por célula
- Observe se o navegador abre corretamente
- Verifique se todos os campos são preenchidos
- Confirme a geração do arquivo XML
- Chrome não abre: Verifique se o Chrome está instalado
- Elementos não encontrados: XPaths podem ter mudado
- Selenium não funciona: Atualize as dependências
Contribuições são bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/NovaFuncionalidade) - Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/NovaFuncionalidade) - Abra um Pull Request
Este projeto é para fins educacionais e de automação de processos internos. Certifique-se de seguir as regulamentações fiscais aplicáveis ao usar sistemas de emissão de notas fiscais.
⭐ Se este projeto foi útil para você, considere dar uma estrela no repositório!