Cypress muestra 401 no autorizado al visitar la página

Cypress muestra 401 no autorizado al visitar la página

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 POSTsolicitud 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 401error, 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')
...
})

información relacionada