Tengo una prueba en la que quiero crear un nuevo documento. Para crear el documento, necesito hacer clic en el botón "Guardar". Al hacer clic en "Guardar", se activa una solicitud POST y se abre el documento recién creado en un portlet en la misma página.
Sin embargo, cuando hago esto en Cypress, al hacer clic en el botón Guardar se abre la URL de la solicitud POST en el navegador. Esta página simplemente muestra la respuesta de la solicitud POST.
{"response":"248"}¿Cómo es posible que al hacer clic en el botón se abra manualmente el documento recién creado, mientras que al hacer clic en el botón en Cypress se abre una nueva URL?
Este es el código de ciprés:
cy.visit(url_document_sets) cy.get('.is_flatten').click({force:true} cy.get('#TcDocumentFile_valid_from').type(current_date) cy.get('.k-button').contains('Speichern') //Speichern = Save Que es exactamente lo que hago manualmente. Voy a la URL, hago clic en 2 botones, luego hago clic en el botón Guardar. Sin embargo, hacer esto en Cypress abrirá la URL de la solicitud POST https://**********/index.php?r=tc/documentSet/documentSet/saveFile&language=de en el navegador.
Cypress no arroja un error, solo abre la URL.
Sé que esta pregunta es muy difícil de reproducir, así que si hay algo que pueda proporcionar para aclarar la pregunta, ayúdenme.
No sé por qué Cypress no solo lo maneja, podría adivinar pero no ayudaría.
Para manejarlo usted mismo, puede intentar cortar la llamada y configurar manualmente el documento a lo que se devuelve.
Supongo que cuando dice "abre el documento recién creado", reemplaza todo el documento del navegador y no solo una parte de la página.
const routeMatcher = { method: 'POST', url: '**/index.php?r=tc/documentSet/documentSet/saveFile&language=de', hostname: 'localhost' } cy.intercept(routeMatcher, (req) => { req.continue((res) => { console.log(res.body) // double-check in console you have "document" // you may have to get it from a property of body cy.state('document', res.body) }) }).as('newDoc') cy.visit(url_document_sets) cy.get('.is_flatten').click({force:true} cy.get('#TcDocumentFile_valid_from').type(current_date) cy.get('.k-button').contains('Speichern') //Speichern = Save cy.wait('@newDoc') // continue testing Si tiene dificultades para encontrar la propiedad del nuevo documento, agregue res a la pregunta y le echaré un vistazo.