【问题标题】:Retrun boolean promise from isPresent function protractor从 isPresent 函数量角器返回布尔诺言
【发布时间】:2020-06-30 07:15:11
【问题描述】:

我正在创建一个函数来返回一个布尔值以了解元素是否存在,但我得到了

this is the status: false

我如何才能得到唯一的真或假响应,请帮忙,我使用的是 if 条件,但它显示响应...

  async IsPresent(element){
        try{
            await element.isPresent().then(function(status){
                console.log("this is the status: " + status);
                return status; 
            });
        }
        catch(err){
            return console.log(err);
        }
    };

这是我调用 IsPresent 的函数

async ClickSomething(){
        try{
            await this.helpers.ClickElement(oneElement);

            if(await this.helpers.IsPresent(anotherElement) == false){
                //Do something
            }else{
               //Do something esle
        }
        catch(err){
            return console.log(err);
        }
    };

【问题讨论】:

标签: javascript selenium protractor


【解决方案1】:

该函数中有很多不必要的代码。您可以使用以下方法实现相同的功能

async IsPresent(element){
    try {
        return await element.isPresent();
    }
    catch (err) {
        return console.log(err);
    }
};

首先要注意的是,当一个函数被声明为async 时,您可以使用await 关键字来暂停执行,直到任何相关的promise 被解决。当只需要等待时,您实际上在这里使用了两种不同的方法来解决承诺(promise.resolve.then())。

要注意的第二件事是isPresent 无论如何都返回 true 或 false,以便可以直接从您的函数返回。

【讨论】:

  • 你好,不,它没有工作,但我通过函数更新我可以获得布尔响应但调用函数时它无法识别布尔响应,我更新了上面的帖子,谢谢
  • 您的新 IsPresent 函数似乎没有返回任何内容,这就是调用该函数时无法访问布尔值的原因。您在我发布的内容中遇到了什么问题?
猜你喜欢
  • 2016-04-02
  • 1970-01-01
  • 1970-01-01
  • 2013-03-11
  • 2017-06-07
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多