🎁 Cadastre-se agora e ganhe até 30 minutos grátis de uso de IA online. Sem cartão de crédito.

Perguntas e Respostas de Entrevista sobre Selenium: 24 Perguntas sobre Esperas, Localizadores e Frameworks

September 2, 2026
Perguntas de entrevista sobre Selenium com respostas sobre localizadores, esperas, testes instáveis, page objects, design de framework, execuções paralelas e falhas de CI.
Perguntas e Respostas de Entrevista sobre Selenium: 24 Perguntas sobre Esperas, Localizadores e Frameworks
perguntas de entrevista selenium
perguntas e respostas de entrevista selenium
entrevista selenium esperas
perguntas de entrevista framework selenium

Entrevistas de Selenium testam duas coisas: se você consegue escrever testes de UI estáveis (esperas, localizadores, page objects) e se consegue projetar um framework com o qual um time consiga conviver (estrutura, dados, relatórios, execução em CI). Testes instáveis são o assunto que mais aparece, porque todo mundo que já usou Selenium já brigou com eles.

Abaixo estão 24 perguntas com respostas. Os exemplos usam sintaxe de Java e Python onde o código ajuda, e as ideias se aplicam a qualquer linguagem.

Fundamentos

1. O que é Selenium e quais são os seus componentes?

Selenium é um conjunto open source para automatizar navegadores web. O Selenium WebDriver controla navegadores por meio de seus drivers e é a parte que a maioria das pessoas quer dizer. O Selenium Grid executa testes em paralelo em várias máquinas e navegadores. O Selenium IDE é uma extensão de gravação e reprodução. O Selenium não lida com aplicativos desktop nem com relatórios de teste nativos, então você o combina com um framework de testes.

2. Como o WebDriver funciona?

Seu teste envia comandos usando o protocolo W3C WebDriver via HTTP para um driver de navegador, como ChromeDriver ou GeckoDriver, que controla o navegador e retorna os resultados. Versões recentes do Selenium incluem o Selenium Manager, que encontra e baixa o driver correto.

3. Quais localizadores o Selenium suporta, e quais você prefere?

ID, name, class name, tag name, link text, partial link text, seletor CSS e XPath. Prefira um ID estável ou um atributo dedicado a testes, como data-testid, depois CSS. Use XPath quando precisar subir na árvore ou corresponder a texto. Evite caminhos longos baseados em posição, como /html/body/div[3]/div[2], que quebram quando o layout muda.

4. Qual é a diferença entre findElement e findElements?

findElement retorna a primeira correspondência e lança NoSuchElementException se não houver nenhuma. findElements retorna uma lista, que fica vazia se nada corresponder, então é útil para verificar que algo não está presente.

5. Qual é a diferença entre driver.close() e driver.quit()?

close() fecha a janela atual. quit() fecha todas as janelas e encerra a sessão. Use quit() no teardown para que nenhum processo de navegador fique para trás.

Esperas e testes instáveis

6. Quais são os tipos de espera?

EsperaComo funciona
ImplícitaUm timeout global para encontrar elementos
ExplícitaEspera por uma condição específica em um elemento específico
FluenteUma espera explícita com intervalo de polling personalizado e exceções ignoradas
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement button = wait.until(ExpectedConditions.elementToBeClickable(By.id("submit")));

Prefira esperas explícitas. Misturar esperas implícitas e explícitas pode causar atrasos imprevisíveis.

7. Por que você não deve usar Thread.sleep?

Ele sempre espera o tempo total, deixando a suíte mais lenta, e ainda assim pode ser curto demais em um dia de lentidão. Uma espera baseada em condição continua assim que a condição é atendida e falha com uma mensagem clara caso contrário.

8. O que causa testes instáveis, e como você os corrige?

Causas comuns e correções:

  • Timing: use esperas explícitas para a condição exata, não sleeps.
  • Dados compartilhados ou remanescentes: crie dados de teste por teste e limpe-os.
  • Dependência entre testes: torne cada teste independente e executável sozinho.
  • Localizadores instáveis: adicione test IDs e evite caminhos baseados em posição.
  • Animações e sobreposições: espere a sobreposição desaparecer ou desative animações no ambiente de teste.
  • Problemas de ambiente: estabilize o ambiente de teste e verifique chamadas de rede e de terceiros.
  • Interferência em paralelo: isole o estado por thread.

Coloque um teste instável em quarentena para que ele não bloqueie todo mundo, depois corrija-o adequadamente. Não saia adicionando retries em tudo, pois isso esconde bugs reais.

9. O que é StaleElementReferenceException?

O elemento que você encontrou não está mais anexado à página, geralmente porque a página foi renderizada novamente. Corrija localizando o elemento de novo pouco antes de usá-lo, ou esperando pelo novo elemento, em vez de manter referências por muito tempo.

10. Como você lida com elementos que não são clicáveis (ElementClickInterceptedException)?

Algo cobre o elemento, como um banner ou uma sobreposição de carregamento. Espere a sobreposição sumir, role o elemento para a área visível ou feche o banner. Usar um clique via JavaScript deve ser o último recurso, porque um usuário real não conseguiria clicar nele e o teste esconderia um bug real.

Lidando com recursos da página

  • Dropdowns: a classe Select para elementos select padrão e passos baseados em cliques para dropdowns customizados.
  • Alertas: driver.switchTo().alert() para aceitar, dispensar ou ler.
  • Frames: switchTo().frame(...) e voltar para defaultContent().
  • Janelas e abas: obter os window handles, alternar para a nova e voltar.

12. Como você lida com upload e download de arquivos?

Para uploads, envie o caminho do arquivo para o elemento input type="file" com sendKeys. Para downloads, defina o diretório de download do navegador nas options e aguarde o arquivo aparecer, depois verifique o nome e o conteúdo.

13. Como você executa JavaScript no Selenium?

Por meio do JavascriptExecutor.executeScript, por exemplo para rolar a página ou ler um valor que a API não alcança. Use com moderação.

14. O que é o modo headless?

O navegador roda sem uma janela visível, o que é mais rápido e funciona em servidores e CI. Verifique com uma execução visível ao depurar e confira o tamanho do viewport, porque os layouts podem ser diferentes.

Design de framework

15. O que é o Page Object Model?

Cada página ou componente é uma classe que guarda seus locators e as ações sobre ela. Os testes chamam métodos como loginPage.loginAs(user) e não tocam nos locators diretamente. Quando a UI muda, você corrige uma classe em vez de muitos testes.

class LoginPage:
    def __init__(self, driver):
        self.driver = driver
    def login_as(self, user, password):
        self.driver.find_element(By.ID, "user").send_keys(user)
        self.driver.find_element(By.ID, "pass").send_keys(password)
        self.driver.find_element(By.ID, "submit").click()

16. O que um bom framework de testes contém?

Um test runner (TestNG, JUnit, pytest), page objects, uma driver factory para diferentes navegadores, configuração por ambiente, gerenciamento de dados de teste, helpers para esperas, relatórios, logs, screenshots em caso de falha e integração com CI.

17. Como você gerencia os dados de teste?

Crie os dados que um teste precisa por meio de uma API ou de um setup de banco de dados no início, não pela UI, e remova-os depois. Mantenha os dados em arquivos ou builders, não hard-coded nos testes, e evite testes que dependem de dados deixados por outro teste.

18. Como você executa testes em paralelo?

Use o recurso de paralelismo do runner, dê a cada thread seu próprio driver (por exemplo, com ThreadLocal), mantenha os testes independentes e rode no Selenium Grid ou em um serviço de navegadores na nuvem para escalar entre navegadores.

19. O que é o Selenium Grid?

Um sistema com um hub e nodes (ou uma configuração distribuída no Grid 4) que executa testes em diferentes navegadores e sistemas operacionais em paralelo. Reduz o tempo total de execução e permite cobrir mais navegadores.

Estratégia e cenários

20. O que você deve automatizar com Selenium, e o que não deve?

Automatize fluxos estáveis, de alto valor e repetíveis, como login, checkout e caminhos críticos de regressão. Não automatize verificações pontuais, UIs que mudam com frequência ou coisas que são melhor testadas em camadas mais baixas. Uma suíte saudável tem muitos testes de unidade e de API, menos testes de UI e um pequeno conjunto de fluxos end-to-end.

21. Como você testa uma aplicação que tem captcha ou login com dois fatores?

Não tente burlar esses mecanismos no teste. Use um ambiente de teste onde eles estejam desativados, uma conta de teste com código fixo ou uma flag de bypass, ou uma API de teste para criar uma sessão.

22. Um teste passa localmente mas falha no CI. O que você verifica?

Versões de navegador e driver, tamanho de tela e diferenças do headless, timing em máquinas mais lentas, dados de ambiente, acesso à rede, fusos horários e locale, e execuções paralelas compartilhando dados. Capture screenshots, o código-fonte da página e logs em caso de falha para comparar.

23. Como você decide entre Selenium, Playwright e Cypress?

O Selenium suporta muitas linguagens e navegadores e tem um ecossistema enorme. Playwright e Cypress oferecem espera integrada, configuração mais fácil e boas ferramentas de depuração, e podem ser mais adequados para projetos novos. A escolha certa depende da linguagem, das necessidades de navegador e das habilidades do time. Dê seus motivos, não uma preferência de marca.

24. Me explique como você automatizaria um fluxo de checkout.

"Eu criaria um usuário e um produto pela API, depois faria login pela UI ou reutilizaria uma sessão. Um page object para cada etapa: busca, produto, carrinho e pagamento. Eu usaria um método de pagamento de teste, esperaria pelo elemento de confirmação, verificaria o pedido pela UI e pela API, e tiraria um screenshot em caso de falha. O teste limparia o próprio pedido, rodaria em paralelo e rodaria no pipeline a cada merge."

Como se preparar

Escreva uma pequena suíte para um site de demonstração com page objects, esperas explícitas, screenshots em caso de falha e uma execução no CI. Pratique explicar como você corrigiu um teste instável, com a causa e a mudança. Esteja pronto para codificar um locator e uma espera ao vivo. Veja nosso guia de assistente para entrevista de programação para rotinas de prática e o guia de entrevista comportamental para a etapa de soft skills.

Diga suas respostas em voz alta e leia uma transcrição para identificar partes vagas como "só adicionar uma espera". Siga as regras da empresa sobre ferramentas de IA em qualquer entrevista ao vivo.

Pratique respostas de entrevista sobre Selenium com YesToTheOffer

Faça uma entrevista técnica simulada, explique seu framework em voz alta e revise sua transcrição depois. 30 minutos grátis, sem assinatura.

iOS & Android — Em breve
Ver preços