Cypress:如何从自定义命令中获取返回值?(柏树-承诺)
我正在寻找一种方法来获取自定义Cypress命令返回的返回值。
我当前使用的是Cypress和Cypress-Promise库(https://www.npmjs.com/package/cypress-promise)
目前结果为: LOG1=CAR 1 log2=空
我的错误在哪里?
测试文件:
it('Test 1', async function() {
const carName = await promisify(cy.set_typeCarName());
cy.log("log2 = " + carName );
});
模块:
set_typeCarName() {
let carName = "CAR 1";
cy.get('#newSiteCityInput').type(carName);
cy.log("log1 = " + carName);
return carName;
};
Cypress.Commands.add('set_typeCarName',() => {
webnewsite.set_typeCarName();
});
解决方案
为此,我使用wrap()
返回包含要返回的值的Chainable
。
模块
function foo() {
return cy.wrap('foo');
}
Cypress.Commands.add('foo', foo);
测试文件
cy.foo().then(value => console.log(value)); // foo
因为wrap()
返回Cypress.Chainable
,所以我们可以在命令上调用.then()
。传递给wrap()
的任何内容都将传递给下一个命令。
另请参阅:Cypress wrap() documentation
相关文章