使用赛普拉斯和TypeScript,如何将当前url保存到字符串变量,转到新的url,然后再返回到先前保存的url?

问题描述 投票:0回答:1

我正在编写一个自动化测试(更像是一个脚本),在这里我去一个URL,然后单击一个带我到动态URL的页面的按钮。现在,我需要转到一个预定义的URL,然后在该处执行一些操作,之后,需要返回到先前保存的动态URL,并在此处进行验证。根据this stackoverflow question中的答案,我在下面尝试了一下,但没有成功:

    it('Saves current url, goes to a new url, goes back to previously saved url', () => {
        let currentUrl = null
        cy.url().then(tempVar => {
            currentUrl = tempVar
        })
        cy.visit('https://a-new-url')
        cy.pause() // To pause execution and see the url changing
        cy.visit(currentUrl)
    })

导致错误文本:

没有重载匹配此调用。重载1,共2个,“((url:字符串,选项?:部分|未定义):可链接)”,出现以下错误。类型“ null”的参数不能分配给类型“ string”的参数。重载2之2,'((options:Partial&{url:string;}):Chainable',给出以下错误。类型为'null'的参数不能分配给类型为'Partial&{url:string; }'。无法将类型“ null”分配给类型“ Partial”。ts(2769)

screenshot of error

url navigation automated-tests cypress
1个回答
0
投票

[我们团队中的一位开发人员帮助我提供了以下效果很好的代码:

    it('Saves current url, goes to a new url, goes back to previously saved url', async () => {
        let currentUrl = await new Promise<string>(resolve => cy.url().then(tempVar => {
            resolve(tempVar)
        }))
        cy.visit('https://a-new-url')
        cy.pause() // So that you can pause execution and see the url changing
        cy.visit(currentUrl) // Successfully takes you back to the old url
})
© www.soinside.com 2019 - 2024. All rights reserved.