如何从赛普拉斯的自定义函数返回值?

时间:2020-07-29 18:08:34

标签: javascript promise cypress

由于我正在处理承诺,因此我一直在努力从自定义函数返回值。谁能帮我这个?非常感谢。 这是我的代码:

这是我的自定义功能:

Cypress.Commands.add("myFunction", () => {
   cy.get('#someID').then($container) => {
      const isHidden = $container().children('div:nth-child(3)').is(':hidden');
      console.log(isHidden); // This returns either true or false and that is good  
      return isHidden; // this returns $chainer but I want to return either true or false 
   }

});

这是我的测试套件:

context('some description', () => {
  before(function(){
      const result = cy.myFunction();
      console.log(result); // This is $chainer, but I want to get the value of true or false from isHidden variable 
  });

});

1 个答案:

答案 0 :(得分:0)

我正在使用 cy.wrap(请参阅 https://docs.cypress.io/api/commands/wrap/#Syntax)执行此操作,它返回 Cypress.Chainable,允许您将 then 与结果一起使用。

Cypress.Commands.add('myFunction', () => {
    return cy.wrap('myResult');
}

cy.myFunction.then((text) => {
    console.log(text); // myResult
}