赛普拉斯切换到最新窗口

时间:2020-05-25 22:16:37

标签: cypress

单击按钮后,我的应用程序将打开新窗口。 我需要切换到最新窗口。 目前,我正在使用这种方法(已经在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中,是否有任何变通方法可在窗口之间切换?

1 个答案:

答案 0 :(得分:1)

我刚刚向cypress-open-child-window Github Repo提交了拉取请求,其中添加了2个额外的命令来帮助解决此问题。 switchWindow()closeWindow()

请参阅:https://github.com/bahmutov/cypress-open-child-window/pull/4/commits/fed977edb03b8b67f934b33617867572dec0e994

万一它被删除,这是我的分叉分支: https://github.com/jakedowns/cypress-open-child-window/tree/add-switchWindow-and-closeWindow

此处的要点在本要点中:https://gist.github.com/jakedowns/32b75add88736fcd99c7202a98354384

更新 这是我使用的一些其他帮助器: https://github.com/jakedowns/CypressHelpers