Analista Judiciário - Área Apoio Especializado Especialidade Tecnologia da Informação
O time de TI de um Tribunal Regional do Trabalho que está desenvolvendo uma aplicação web configurou o Selenium WebDriver para realizar testes de funcionalidades no navegador Chrome. Durante os testes, identificaram que o script falha ao tentar interagir com o botão de "Enviar", apresentando o erro NoSuchElementException. O desenvolvedor analisou o código e percebeu que o botão é carregado dinamicamente após a conclusão de uma animação. Nesse contexto, a abordagem mais adequada que o time deve adotar para resolver o problema e garantir que o botão seja corretamente identificado e clicado nos testes é
Aconfigurar o WebDriver para ignorar exceções e continuar a execução.
Batualizar o Selenium WebDriver e o Selenium IDE para as versões mais recentes.
Cimplementar Implicit Wait no script para executar após o carregamento do botão.
Daumentar o tempo de execução do script para garantir que o botão seja carregado.
Eutilizar Explicit Wait para aguardar a presença do botão na página antes de interagir.
Revelar gabarito e comentário▾
GabaritoE — utilizar Explicit Wait para aguardar a presença do botão na página antes de interagir.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Selenium WebDriver: Esperas para elementos dinâmicos
Gabarito: letra E. O erro NoSuchElementException ocorre porque o botão é carregado dinamicamente após uma animação. A abordagem correta é usar Explicit Wait, que permite aguardar uma condição específica (ex.: presença do elemento) antes de interagir. Isso resolve o problema sem comprometer a eficiência dos testes.
O time precisa garantir que o script espere ativamente pela condição desejada. As demais alternativas são inadequadas pelos seguintes motivos:
Característica
Implicit Wait
Explicit Wait
Espera Fixa (time.sleep)
Natureza
Espera global, aplicada a todas as buscas de elementos
Espera condicional, aplicada a um elemento específico
Espera fixa e arbitrária, sem condição
Condição de espera
Apenas presença do elemento no DOM
Qualquer condição (presença, visibilidade, clicabilidade, etc.)
Nenhuma – apenas tempo decorrido
Flexibilidade
Baixa – não diferencia elementos ou condições
Alta – permite aguardar condições específicas (ex.: fim de animação)
Nenhuma – sempre o mesmo tempo
Eficiência
Pode atrasar desnecessariamente a detecção de falhas
Eficiente – aguarda apenas o necessário
Ineficiente – tempo fixo pode ser insuficiente ou excessivo
Tratamento de elementos dinâmicos
Limitado – não aguarda condições como visibilidade ou clicabilidade
Ideal – aguarda a condição exata (ex.: elemento visível após animação)
Inadequado – não se adapta à dinâmica da página
Impacto em falsos positivos
Pode mascarar problemas se o tempo for muito longo
Reduz falsos positivos ao aguardar a condição correta
Pode gerar falsos positivos se o tempo for insuficiente
Recomendação para o caso
❌ Não é a melhor opção
✅ Mais adequada
❌ Má prática
Alternativa A — ❌ Incorreta
Ignorar exceções não resolve a causa raiz – o elemento não está presente quando a tentativa de clique é feita. A execução continuaria cega, gerando falsos positivos ou erros posteriores.
Alternativa B — ❌ Incorreta
Atualizar versões do Selenium não muda o comportamento de espera. O problema é de sincronização, não de bug de versão.
Alternativa C — ❌ Incorreta
O Implicit Wait define um tempo máximo global para cada tentativa de localizar um elemento, mas não permite aguardar uma condição específica (como o fim da animação). Ele pode até funcionar se o tempo for suficiente, mas é menos flexível e pode mascarar problemas ou atrasar desnecessariamente a detecção de falhas reais.
Alternativa D — ❌ Incorreta
Aumentar o tempo de execução do script (ex.: com time.sleep()) é considerado má prática: fixa um atraso arbitrário, torna o teste mais lento e pode falhar se o tempo for insuficiente ou exceder o necessário.
PEGA ESSA DICA!
Em testes com Selenium, prefira Explicit Wait para condições pontuais (ex.: visibilityOfElementLocated) e Implicit Wait como configuração global para buscas rápidas. Nunca use esperas fixas arbitrárias.