Cypress文档(https://docs.cypress.io/guides/core-concepts/variables-and-aliases.html#Elements)对于如何在测试期间使用别名和变量来存储信息非常不清楚。
我尝试将div的文本存储在一个页面上以供以后使用,例如:
// let vpcName;
it('Store current name to use later', () => {
// save name for later use - doesn't work
// cy.get('#value').then(elem => {
// vpcName = Cypress.$(elem).text;
// });
// using alias - also doesn't work
cy.get('#value')
.invoke('text')
.as('vpcName');
});
it('Use previous value to return to correct page', () => {
cy.contains(this.vpcName).click();
});
5条答案
按热度按时间ergxz8rk1#
我刚刚看到这篇文章,它解释了如何以及为什么存储变量,然后以“Cypress方式”使用它:
https://www.stevenhicks.me/blog/2020/02/working-with-variables-in-cypress-tests/
关于它应该如何工作,下面是我的示例,首先,收集消息(消息只显示3秒,然后消失);其次,它使用
@
符号获取值;最后,我的代码将存储的消息传递给一个空函数,该函数被构造为Assert值Portsmouth
包含在消息中。如果你需要进一步的澄清请告诉我
gev0vcfq2#
试试这个:
图片来源:https://docs.cypress.io/guides/core-concepts/variables-and-aliases.html#Return-Values
xkrw2x1b3#
我不得不求助于
当我试着去
cnwbcb6i4#
另一种解决方案是将
cy.get
调用封装在一个函数中,但实际上并不将元素存储到变量中,而是起到一些相同的作用,例如:如果可读性是您的主要目标,这可能是一个很好的选择。
hjzp0vay5#
这几天我一直在纠结这个问题。如果你想多次使用保存的文本(例如),下面是我的方法。但是我觉得它太长了,我认为它可以优化。在Cypress v11.2.0上测试