我试图在Cypress中获取字符串形式的URL。下面是我的代码:
let schoolDistrictViewLink1 = null;
cy.url().then(($url) => { schoolDistrictViewLink1 = $url, cy.log($url)})
cy.log(schoolDistrictViewLink1)
当我运行测试时,第一个日志正确地记录了URL,但是schoolDistrictViewLink1仍然为空。
我无法使schoolDistrictViewLink1等于URL。
3条答案
按热度按时间i34xakig1#
由于Cypress的异步特性,这将不起作用。Cypress自己建议使用别名来保存值以供以后使用。
https://docs.cypress.io/guides/core-concepts/variables-and-aliases
在这个例子中,你可以把
cy.url()
的值放在一个别名中,你可以在后面通过cy.get('@aliasName')
得到这个别名:示例:
0x6upsns2#
如果您希望立即将命令链接到
cy.url
,那么您不必做任何事情,只需链接即可。如果您想在测试的稍后阶段使用它,可以使用
function()
和this
关键字的组合brgchamk3#
您试图在传递给
cy.url()
的callback
函数中将URL的值赋给schoolDistrictViewLink1
。这意味着schoolDistrictViewLink1
的值只有在回调函数被调用后才会更新,回调函数在cy.url()
执行后异步发生。您可以使用**async/await**模式等待值更新。
快乐编码!