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

本教程将介绍Cypress:如何从自定义命令中获取返回值?(柏树-承诺)的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

Cypress:怎么从自定义命令中获取返回值?(柏树-承诺) 教程 第1张

问题描述

我正在寻找一种方法来获取自定义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:怎么从自定义命令中获取返回值?(柏树-承诺)的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。