
Estoy usando Cypress para probar algunas aplicaciones web. La mayoría de las direcciones de páginas se comportan de forma completamente idéntica a cuando las visito manualmente.
Sin embargo, tengo algunas páginas que devuelven un 401 - No autorizado tan pronto como las visito a través de Cypress. Estas páginas problemáticas son páginas de inicio de sesión simples con nombre de usuario y contraseña, y el error aparece incluso antes de comenzar a completar los campos de nombre de usuario/contraseña.
Ya cambié entre los navegadores Chrome y Electron, pero hasta ahora no tuve suerte.
¿Alguien tiene alguna idea de qué podría intentar para superar este problema 401? No encuentro nada útil en Google sobre el tema.
Respuesta1
Yo tuve el mismo problema. Está relacionado con una POST
solicitud realizada entre visitas que requiere autenticación. Cypress desautoriza A VECES entre pruebas, lo cual es un comportamiento inusual que no creo que sea intencionado (hay un informe sobre esto pero no con tanta información como necesitan, agregaré más información al hilo de GitHub lo antes posible).
Por ahora, para solucionar el problema, agregué un cy.wait()
antes de cada visita en la prueba (especialmente de la que estaba fallando). Hizo que hasta la página que me daba el 401
error, pase. A continuación se proporciona un ejemplo sencillo:
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')
})
También puedes hacer una solución (no tan recomendada) poniendo las visitas en la misma prueba:
it('checks the xxx page', () => {
cy.wait(20000)
cy.visit('/page')
cy.wait(10000)
cy.get('element').should('contain', 'Header text')
cy.visit('/anotherpage')
...
})