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.
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')
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.
- Crie um teste chamado
verifica que a política de privacidade abre em outra aba sem a necessidade de um clique
- Tal teste deve utilizar a alternativa 1 demonstrada acima
- Por fim, execute o novo teste no Test Runner, e quando o mesmo estiver passando, siga adiante para o próximo exercício
- Crie um testes chamado
acessa a página da política de privacidade removendo o target e então clicando no link
- Tal teste deve utilizar a alternativa 2 demonstrada acima
- Por fim, execute o novo teste no Test Runner, e quando o mesmo estiver passando, siga adiante para o próximo exercício
- Crie um testes chamado
testa a página da política de privacidade de forma independente
- Use sua criativade e as funcionalidades que aprendeu até aqui para realizar este teste (a solução é mais simples do que você imagina)
- 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.