1
resposta

[Bug] Divergência de informações

Na aula foi comentado sobre qual seria realmente a melhor prática e que seria utilizando o getByTestId e não o getByRole, mas com relação a busca de fato, não foi apresentado com o uso do toHaveText('Passagens') e sim com o toBeVisible().

1 resposta

Olá.

Diferença entre as abordagens:

getByTestId (melhor prática em testes E2E)

  • É mais estável e intencional.
  • Você controla diretamente o seletor com atributos como data-testid="minha-tag".
  • Menos sujeito a quebras por mudanças visuais/semânticas.

getByRole

  • Usa o papel semântico do elemento (ex: botão, título, link).
  • É mais próximo do comportamento do usuário real.
  • Pode ser mais frágil em alguns contextos se o HTML não estiver bem estruturado.

Sobre toHaveText('Passagens') vs. toBeVisible()

  • toHaveText('Passagens'): verifica o conteúdo textual esperado.
  • toBeVisible(): verifica se o elemento está visível na tela, mas não garante que o conteúdo esteja correto.

Então, para garantir que o texto esteja presente e correto, o ideal seria:

await expect(page.getByTestId('titulo-passagens')).toHaveText('Passagens');

Se no vídeo só usaram toBeVisible(), talvez foi para manter o exemplo mais simples.