Skip to content

Latest commit

 

History

History
59 lines (34 loc) · 3.41 KB

07.md

File metadata and controls

59 lines (34 loc) · 3.41 KB

Lidando com links que abrem em outra aba

Na página de trade-offs da documentação oficial do Cypress (no momento da escrita desta aula), há uma seção que comenta da limitação do Cypress funcionar somente em uma aba do navegador.

Muitos vêem isso como uma limitação e não buscam entender como contornar tal situação.

Porém, dependendo do que você precisa testar, isso não seja tão difícil quanto você pensa.

Na aplicação CAC TAT, temos um link para a política de privacidade, o qual quando clicado, abre tal página em uma nova aba do navegador.

Como testar tal página?

Ou, que outras alternativas tenho à minha disposição?

Vou te apresentar duas alternativas, porém, na documentação oficial, você vai encontrar ainda mais.

Alternativa 1 - confie que o navegador funciona (teste a aplicação, não o browser)

Ou seja, se um elemento do tipo âncora (a) possui o atributo target com o valor _blank, quando clicado, obrigatóriamente o valor do atributo href será aberto em uma nova aba. Este é o compartamento padrão em qualquer navegador.

Neste caso, podemos simplesmente verificar tal característica, sem nem mesmo precisar clicar no elemento.

Algo como o seguinte:

cy.get('.some-link').should('have.attr', 'target', '_blank')

Alternativa 2 - remova o atributo target do elemento

Já se você precisa ir para esta outra página, o Cypress deixa você remover a propriedade target do elemento âncora.

Para isso, te apresento a funcionalidade .invoke().

Com a funcionalidade invoke(), você pode fazer o seguinte, por exemplo: cy.get('#link-que-abre-em-outra-aba').invoke('removeAttr', 'target').

👨‍🏫 Vale comentar que, para tal alternativa funcionar, a página que normalmente abre em outra aba deve estar no mesmo domínio (ou sub-domínio) da aplicação em teste.

Para mais informações sobre como lidar com links que abrem em outras abas, consulte esta página (mantida pelo time do Cypress), a qual contém recursos bastante úteis.

Exercício

  1. Crie um teste chamado verifica que a política de privacidade abre em outra aba sem a necessidade de um clique
  2. Tal teste deve utilizar a alternativa 1 demonstrada acima
  3. Por fim, execute o novo teste no Test Runner, e quando o mesmo estiver passando, siga adiante para o próximo exercício

Exercício extra 1

  1. Crie um testes chamado acessa a página da política de privacidade removendo o target e então clicando no link
  2. Tal teste deve utilizar a alternativa 2 demonstrada acima
  3. Por fim, execute o novo teste no Test Runner, e quando o mesmo estiver passando, siga adiante para o próximo exercício

Exercício extra 2 - Desafio

  1. Crie um testes chamado testa a página da política de privacidade de forma independente
  2. Use sua criativade e as funcionalidades que aprendeu até aqui para realizar este teste (a solução é mais simples do que você imagina)
  3. Por fim, execute o novo teste no Test Runner e siga adiante somente quando o teste estiver passando

Siga para a aula 8 para aprender como rodar os testes simulando o viewport de um dispositivo móvel.