
Estou usando o Cypress para testar alguns aplicativos da web. A maioria dos endereços de páginas se comporta de forma completamente idêntica a quando eu os visito manualmente.
Porém, tenho algumas páginas que retornam um 401 - Não autorizado assim que as visito pelo Cypress. Essas páginas problemáticas são páginas de login simples com nome de usuário e senha, e o erro é gerado antes mesmo de eu começar a preencher os campos de nome de usuário/senha.
Já mudei entre os navegadores Chrome e Electron, mas não tive sorte até agora.
Alguém tem alguma ideia do que eu poderia tentar para superar esse problema 401? Não consigo encontrar nada útil no Google sobre o assunto.
Responder1
Eu tive o mesmo problema. Está relacionado a uma POST
solicitação feita entre visitas que requer autenticação. Cypress desautoriza ÀS VEZES entre os testes, o que é um comportamento esquisito que não creio ser pretendido (há um relatório sobre isso, mas não com tantas informações quanto eles precisam, adicionarei mais informações ao tópico do GitHub o mais rápido possível).
Por enquanto, para resolver o problema, adicionei um cy.wait()
antes de cada visita no teste, (principalmente daquela que estava falhando). Fez até a página me dar o 401
erro, passar. Um exemplo simples é fornecido abaixo:
it('checks the xxx page', () => {
cy.wait(20000)
cy.visit('/page')
})
it('verifies xxx page is loaded', () => {
cy.wait(10000)
cy.get('element').should('contain', 'Header text')
})
Você também pode fazer uma solução alternativa (não tão recomendada) colocando as visitas no mesmo teste:
it('checks the xxx page', () => {
cy.wait(20000)
cy.visit('/page')
cy.wait(10000)
cy.get('element').should('contain', 'Header text')
cy.visit('/anotherpage')
...
})