如何模拟 Cypress.io 中丢失的窗口焦点

dav*_*idk 6 javascript automated-tests e2e-testing angular cypress

我正在使用 Cypress.io 为网站编写 E2E 测试。我想测试的功能之一是该站点正确检测到焦点丢失并显示(有角度的材料)对话框。我遇到的问题是我找不到一种可靠的方法来触发在测试环境中发生的窗口焦点丢失。我已经查看了 Cypress.io 中各种焦点和模糊事件的文档,但结果是空的。有谁知道是否可以从 Cypress.io 以编程方式触发窗口焦点丢失(模糊),如果可以,是否有我可以遵循的文档或示例?

bku*_*era 5

这取决于您的页面如何侦听此事件,因此有一些潜在的解决方案:

尝试:

cy.window().trigger('blur')
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请尝试:

cy.document().then((doc) => {
  cy.stub(doc, "hidden").value(true)
})
cy.document().trigger('visibilitychange')
Run Code Online (Sandbox Code Playgroud)

在某些情况下