Este projeto automatiza a interação com a aplicação web de simulação agrícola, especificamente para gerenciar períodos de risco de emergência.
- ✅ Acessa a URL
http://localhost:3000/simulacao/resultado/714 - ✅ Clica no elemento "Emergência" para abrir os detalhes do período
- ✅ Aguarda 5 segundos
- ✅ Fecha o risco (clica no toggle ou botão de fechar)
- ✅ Tratamento robusto de erros
- ✅ Múltiplas estratégias de busca de elementos
- .NET 9.0 ou superior
- Google Chrome instalado
- Make (opcional, para usar o Makefile)
- A aplicação web rodando em
http://localhost:3000 - A página
/simulacao/resultado/714acessível
# Ver todos os comandos disponíveis
make help
# Instalação completa do zero
make setup
# Execução simples
make run
# Execução com verificação prévia da aplicação
make run-safe
# Execução em modo debug
make run-debug
# Verificar dependências
make check-deps
# Limpar arquivos de build
make clean# Restaurar dependências
dotnet restore
# Compilar projeto
dotnet build
# Executar automação
dotnet runend_to_end/
├── WebAutomation.csproj # Configuração do projeto .NET
├── Program.cs # Código principal da automação
├── Makefile # Automação de comandos
├── README.md # Documentação
└── bin/ # Arquivos compilados (gerado)
└── obj/ # Arquivos temporários (gerado)
| Pacote | Versão | Descrição |
|---|---|---|
Selenium.WebDriver |
4.15.0 | Driver principal do Selenium |
Selenium.WebDriver.ChromeDriver |
119.0.6045.10500 | Driver específico do Chrome |
-
Inicialização
- Configura o Chrome em modo maximizado
- Desabilita detecção de automação
- Navega para a URL especificada
-
Carregamento
- Aguarda a página carregar completamente
- Aguarda 2 segundos para garantir elementos carregados
-
Busca do Elemento
- Procura por "Emergência" usando múltiplas estratégias:
- Texto contendo "Emergência"
- Texto exato "Emergência"
- Links, botões ou spans com o texto
- Debug de elementos encontrados
- Procura por "Emergência" usando múltiplas estratégias:
-
Interação
- Faz scroll para o elemento
- Clica no elemento "Emergência"
- Aguarda 5 segundos
-
Fechamento
- Procura botão de fechar ou toggle
- Clica para fechar o risco
- Fecha o navegador
O código implementa múltiplas estratégias para encontrar elementos:
// 1. Busca por texto contendo
By.XPath("//*[contains(text(), 'Emergência')]")
// 2. Busca por texto exato
By.XPath("//*[text()='Emergência']")
// 3. Busca em elementos específicos
By.XPath("//a[contains(text(), 'Emergência')] | //button[contains(text(), 'Emergência')]")
// 4. Busca de toggle/botão de fechar
By.XPath("//input[@type='checkbox' and @checked] | //*[contains(@class, 'toggle')]")| Comando | Descrição |
|---|---|
make help |
Mostra ajuda com todos os comandos |
make setup |
Instalação completa do zero |
make install |
Instala dependências |
make restore |
Restaura pacotes NuGet |
make build |
Compila o projeto |
make run |
Executa a automação |
make run-safe |
Executa com verificação prévia |
make run-debug |
Executa em modo debug |
make run-verbose |
Executa com logs detalhados |
make clean |
Limpa arquivos de build |
make check-deps |
Verifica dependências do sistema |
make check-chrome |
Verifica se Chrome está instalado |
make check-app |
Verifica se a aplicação web está rodando |
make info |
Mostra informações do projeto |
var options = new ChromeOptions();
options.AddArgument("--start-maximized");
options.AddArgument("--disable-blink-features=AutomationControlled");- WebDriverWait: 10 segundos
- Carregamento da página: 2 segundos
- Aguardo após clique: 5 segundos
- ✅ Múltiplas tentativas de busca de elementos
- ✅ Logs detalhados para debug
- ✅ Captura de exceções específicas
- ✅ Fallback para diferentes seletores
- ✅ Verificação de elementos visíveis
O programa gera logs detalhados:
Iniciando automação...
Navegando para: http://localhost:3000/simulacao/resultado/714
Página carregada com sucesso!
Procurando pelo elemento 'Emergência'...
Elemento 'Emergência' encontrado! Clicando...
Clique realizado com sucesso!
Aguardando 5 segundos...
Risco fechado com sucesso!
Automação concluída!
# Execute em modo debug para ver logs detalhados
make run-debug# Verifique se a aplicação está rodando
make check-app# Verifique se o Chrome está instalado
make check-chrome# Verifique dependências
make check-deps# 1. Clone ou baixe o projeto
cd /Users/danilo/Desktop/end_to_end
# 2. Verifique se a aplicação web está rodando
# (Certifique-se de que http://localhost:3000 está acessível)
# 3. Execute a automação
make run
# Ou para execução completa com verificações
make run-safe# Desenvolvimento
make run-debug
# Testes
make run-verbose
# Produção
make run
# Limpeza
make cleanPara problemas ou dúvidas:
- Verifique os logs de debug:
make run-debug - Confirme que a aplicação web está rodando
- Verifique se o Chrome está instalado
- Consulte a seção de solução de problemas acima