问题就这么简单。在 Cypress 中,如何访问运行测试时打开的新窗口。
重新创建的步骤:
- 运行测试。进行一些操作后,会弹出新窗口(URL 本质上是动态的)。
- 填写新窗口中的字段,然后单击几个按钮。
- 在新窗口中完成所需操作后,关闭新窗口并返回主窗口。
- 继续在主窗口执行。
兴趣点:重点应该是
main window -> new window -> main window
我读过一些与使用相关的内容iframe
and confirmation box
,但这里都不是。涉及访问一个全新的窗口。就像是Window Handlers在硒中。不幸的是找不到任何与之相关的东西。
通过 Cypress 访问新窗口是故意不支持.
然而,现在可以通过多种方式在 Cypress 中测试此功能。您可以将测试分成单独的部分,并且仍然确信您的应用程序已被覆盖。
- 编写一个测试来检查在应用程序中执行操作时,
window.open
事件是通过使用调用的cy.spy()听一个window.open
event.
cy.visit('http://localhost:3000', {
onBeforeLoad(win) {
cy.stub(win, 'open')
}
})
// Do the action in your app like cy.get('.open-window-btn').click()
cy.window().its('open').should('be.called')
- 在新的测试中,使用cy.visit()要转到在新窗口中打开的 URL,请填写字段并单击按钮,就像在 Cypress 测试中一样。
cy.visit('http://localhost:3000/new-window')
// Do the actions you want to test in the new window
可以找到完全有效的测试示例here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)