Pular para o conteúdo principal

Questão de Programação — Web — FCC 2025

ProgramaçãoWeb
Código
fc075038
Banca
FCC
Órgão
TRT - 1ª REGIÃO (RJ)
Ano
2025
Nível
Superior
Cargo
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 é
  1. Aconfigurar o WebDriver para ignorar exceções e continuar a execução.
  2. Batualizar o Selenium WebDriver e o Selenium IDE para as versões mais recentes.
  3. Cimplementar Implicit Wait no script para executar após o carregamento do botão.
  4. Daumentar o tempo de execução do script para garantir que o botão seja carregado.
  5. 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.

Gabarito: letra E.

Link permanente: /questoes/fc075038