Cypress:如何从自定义命令中获取返回值?(柏树-承诺)

Cypress : How to get returned value from custom commands ? (Cypress-promise)(Cypress:如何从自定义命令中获取返回值?(柏树-承诺))

本文介绍了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

这篇关于Cypress:如何从自定义命令中获取返回值?(柏树-承诺)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Cypress:如何从自定义命令中获取返回值?(柏树-承诺)