赛普拉斯如何关闭 window 打印对话框

Cypress how to close window print dialog

我希望使用 cypress 对打印 window 执行操作。

当我点击打印按钮时手动打印 window,如图 1 所示。 但是当我 运行 在 cypress test 运行ner 中使用相同的脚本时,我得到了图 2 中的打印 windows。

我知道可以使用存根来完成对此类 window 的操作。但我什至无法检查打印 window 我进入测试 运行ner 即图像 2。那么取消按钮的定位器应该是什么?

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
                })
            })

图片 1:

图2:

我不确定是什么导致了两次打印 windows 的不同,但从技术上讲,您不需要测试实际打印的部分,只需调用 window.print 即可。

如果您同意,请遵循此示例 Replace a method with a function,将虚拟函数作为第三个参数添加到存根。

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))

或者只是断言调用发生了

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)