Estoy probando un sitio web al que debe agregar los detalles de la tarjeta, para hacer esto, debe redirigir al sitio de un proveedor de pagos para agregar los detalles. Cuando haya completado el formulario e intente regresar al sitio principal, obtendrá un error que dice "sesión caducada o cookies no habilitadas". He usado el método de preservar una vez para guardar la ID de la sesión, pero parece que no funciona. Puedo guardar cookies de autenticación en el sitio principal, pero cuando me muevo a la URL del proveedor de la tarjeta de crédito, las cookies no se guardan. ¿Algunas ideas?
Tal vez intente esto:
En comandos.json:
Cypress.Commands.add('storeSessionData',()=>{ let str = []; cy.getCookies().then((cookie) => { cy.log(cookie); for (let l = 0; l < cookie.length; l++) { if (cookie.length > 0 && l == 0) { str[l] = cookie[l].name; Cypress.Cookies.preserveOnce(str[l]); } else if (cookie.length > 1 && l > 1) { str[l] = cookie[l].name; Cypress.Cookies.preserveOnce(str[l]); } } }); })Luego, en su código de prueba dentro del bloque de descripción:
afterEach(() => { cy.storeSessionData(); });Esto debería almacenar los datos de su sesión, para que pueda mantener una sesión al final de cada prueba. Tenga en cuenta que al final de cada bloque 'it', el comportamiento predeterminado es borrar las cookies, por lo que esto mitiga eso