我试图使用.as命令存储一个变量,该命令存储数据,但当使用This.text调用时返回Null
it('store variable',function(){
cy.log('ASDF').as('print')
}
it('print',function(){
cy.log(This.print)
}
这是因为cy.log()
不会产生任何结果。查看文档,每个命令都有一个Yields部分,让您知道传递给.as()
等链式命令的内容。
您希望改用cy.wrap()
。
cy.wrap('ASDF').as('print')
也不要在this
上使用大写T
cy.log(this.print)
假设要将保存在一个it
块中的值用于另一个块。别名(as
(将不是正确的选择,因为柏树会清除it
块之间的别名。
您可以使用柏树环境变量来保存文本,然后您可以在整个柏树项目的任何地方使用该文本。
it('store variable', function () {
cy.get('selector')
.invoke('text')
.then((text) => {
Cypress.env('envVarText', text) //Saves the value
})
})
it('print', function () {
cy.log(Cypress.env('envVarText')) //gets the value
})
如果你想包装文本,你可以这样做:
it('store variable', function () {
cy.wrap('ASDF').then((text) => {
Cypress.env('envVarText', text) //Saves the value
})
})
it('print', function () {
cy.log(Cypress.env('envVarText')) //gets the value
})