我正在使用Cypress.io编写网站的E2E测试。我希望测试的其中一个功能是检测网站正确地检测到焦点丢失并显示(angular material)对话框。我遇到的问题是,我无法找到一种可靠的方法来触发窗口焦点丢失事件以在测试环境中进行测试。我已查看了Cypress.io中各种焦点和模糊事件的文档,但没有找到解决方法。有人知道是否可以从Cypress.io中以编程方式触发窗口焦点丢失(模糊),如果可以,请提供文档或示例。
我正在使用Cypress.io编写网站的E2E测试。我希望测试的其中一个功能是检测网站正确地检测到焦点丢失并显示(angular material)对话框。我遇到的问题是,我无法找到一种可靠的方法来触发窗口焦点丢失事件以在测试环境中进行测试。我已查看了Cypress.io中各种焦点和模糊事件的文档,但没有找到解决方法。有人知道是否可以从Cypress.io中以编程方式触发窗口焦点丢失(模糊),如果可以,请提供文档或示例。
cy.window().trigger('blur')
如果那个方法不起作用,可以尝试以下方法:
cy.document().then((doc) => {
cy.stub(doc, "hidden").value(true)
})
cy.document().trigger('visibilitychange')
我有同样的问题,但是批准的答案对我不起作用。但下面的代码可以正常工作
cy.document().then((doc) => {
cy.stub(doc, "visibilityState").value("hidden") //or "visible" if you want focus
})
cy.document().trigger('visibilitychange')
cy.window().trigger("blur");
,但它确实帮助我找到了正确的方向。谢谢。 - davidk