Skip to content

torneseumprogramador/selenium-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Automação Web com Selenium - .NET

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.

🎯 Funcionalidades

  • ✅ 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

📋 Pré-requisitos

Sistema

  • .NET 9.0 ou superior
  • Google Chrome instalado
  • Make (opcional, para usar o Makefile)

Aplicação

  • A aplicação web rodando em http://localhost:3000
  • A página /simulacao/resultado/714 acessível

🚀 Como Executar

Opção 1: Usando Makefile (Recomendado)

# 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

Opção 2: Comandos .NET Diretos

# Restaurar dependências
dotnet restore

# Compilar projeto
dotnet build

# Executar automação
dotnet run

📁 Estrutura do Projeto

end_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)

📦 Dependências

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

⚙️ Funcionamento Detalhado

Fluxo de Execução

  1. Inicialização

    • Configura o Chrome em modo maximizado
    • Desabilita detecção de automação
    • Navega para a URL especificada
  2. Carregamento

    • Aguarda a página carregar completamente
    • Aguarda 2 segundos para garantir elementos carregados
  3. 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
  4. Interação

    • Faz scroll para o elemento
    • Clica no elemento "Emergência"
    • Aguarda 5 segundos
  5. Fechamento

    • Procura botão de fechar ou toggle
    • Clica para fechar o risco
    • Fecha o navegador

Estratégias de Busca

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')]")

🛠️ Comandos Makefile Disponíveis

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

🔧 Configurações

Chrome Options

var options = new ChromeOptions();
options.AddArgument("--start-maximized");
options.AddArgument("--disable-blink-features=AutomationControlled");

Timeouts

  • WebDriverWait: 10 segundos
  • Carregamento da página: 2 segundos
  • Aguardo após clique: 5 segundos

🐛 Tratamento de Erros

Estratégias Implementadas

  • ✅ 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

Logs de Debug

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!

🚨 Solução de Problemas

Problema: Elemento não encontrado

# Execute em modo debug para ver logs detalhados
make run-debug

Problema: Aplicação não está rodando

# Verifique se a aplicação está rodando
make check-app

Problema: Chrome não encontrado

# Verifique se o Chrome está instalado
make check-chrome

Problema: .NET não encontrado

# Verifique dependências
make check-deps

📝 Exemplo de Uso Completo

# 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

🔄 Ciclo de Desenvolvimento

# Desenvolvimento
make run-debug

# Testes
make run-verbose

# Produção
make run

# Limpeza
make clean

📞 Suporte

Para problemas ou dúvidas:

  1. Verifique os logs de debug: make run-debug
  2. Confirme que a aplicação web está rodando
  3. Verifique se o Chrome está instalado
  4. Consulte a seção de solução de problemas acima

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published