单击按钮后,我的应用程序将打开新窗口。 我需要切换到最新窗口。 目前,我正在使用这种方法(已经在Cypress的commands.js文件中添加了Command)在新窗口中打开URL,但是我不知道如何修改它来解决当前问题。
Cypress.Commands.add('openWindow', (url, features) => {
const w = Cypress.config('viewportWidth')
const h = Cypress.config('viewportHeight')
if (!features) {
features = `width=${w}, height=${h}`
}
console.log('openWindow %s "%s"', url, features)
return new Promise(resolve => {
if (window.top.aut) {
console.log('window exists already')
window.top.aut.close()
}
// https://developer.mozilla.org/en-US/docs/Web/API/Window/open
window.top.aut = window.top.open(url, 'aut', features)
// letting page enough time to load and set "document.domain = localhost"
// so we can access it
setTimeout(() => {
cy.state('document', window.top.aut.document);
cy.state('window', window.top.aut);
resolve()
}, 500)
}) })
在Cypress中,是否有任何变通方法可在窗口之间切换?
答案 0 :(得分:1)
我刚刚向cypress-open-child-window
Github Repo提交了拉取请求,其中添加了2个额外的命令来帮助解决此问题。 switchWindow()
和closeWindow()
万一它被删除,这是我的分叉分支: https://github.com/jakedowns/cypress-open-child-window/tree/add-switchWindow-and-closeWindow
此处的要点在本要点中:https://gist.github.com/jakedowns/32b75add88736fcd99c7202a98354384
更新 这是我使用的一些其他帮助器: https://github.com/jakedowns/CypressHelpers