Estoy buscando realizar una acción en la ventana de impresión usando ciprés.
Manualmente, cuando hago clic en el botón de impresión, obtengo la ventana de impresión como en la Imagen 1. Pero cuando ejecuto el mismo script en Cypress Test Runner, obtengo las ventanas de impresión como en la Imagen 2.
Soy consciente de que la acción en dicha ventana se puede realizar mediante un código auxiliar. Pero ni siquiera puedo inspeccionar la ventana de impresión que obtengo en el corredor de prueba, es decir, la imagen 2. Entonces, ¿cuál será el localizador del botón cancelar?
let printStub cy.window().then(win => { printStub = cy.stub(win, 'print') cy.get(HOW DO I GET THE LOCATOR).click().then(()=>{ expect(win.print).to.be.called }) })No estoy seguro de qué causa la diferencia en las dos ventanas de impresión, pero técnicamente no necesita probar la parte de impresión real, solo se ha llamado a window.print .
Si está de acuerdo, siga este ejemplo Reemplace un método con una función , agregando una función ficticia como tercer parámetro al código auxiliar.
let printCalled = false cy.stub(cy.state('window'), 'print', () => { printCalled = true }) cy.get('the-print-button-selector').click() // app calls window.print .should(() => expect(printCalled).to.eq(true))o simplemente afirmar que la llamada sucedió
const stub = cy.stub(cy.state('window'), 'print', () => {}) // replace print with do-nothing fn cy.get('the-print-button-selector').click() // app calls window.print .should(() => expect(stub).to.be.called)