Javascript 从isPresent函数量角器重新运行布尔承诺
我做了一个函数来返回一个布尔值,以知道元素是否存在,但我得到Javascript 从isPresent函数量角器重新运行布尔承诺,javascript,selenium,protractor,Javascript,Selenium,Protractor,我做了一个函数来返回一个布尔值,以知道元素是否存在,但我得到 this is the status: false 我如何才能得到唯一正确或错误的响应,请帮助,我使用的是if条件,但它显示了该响应 async IsPresent(element){ try{ await element.isPresent().then(function(status){ console.log("this is the status:
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);
}
};
该函数中有许多不必要的代码。您可以使用以下方法实现相同的功能
async IsPresent(element){
try {
return await element.isPresent();
}
catch (err) {
return console.log(err);
}
};
首先要注意的是,当一个函数被声明为async
时,您可以使用wait
关键字暂停执行,直到任何相关的承诺得到解决。实际上,您在这里使用了两种不同的方法来解析承诺(promise.resolve
和.then()
),而只需要等待
第二点要注意的是,无论如何都要返回true或false,以便可以直接从函数中返回。这是否回答了您的问题?您好,不,它不起作用,但我通过函数更新了我可以得到布尔值响应,但是调用函数时它无法识别布尔值响应,我更新了上面的帖子,谢谢您新的IsPresent函数似乎没有返回任何内容,这就是为什么调用函数时无法访问布尔值的原因。你在我发布的内容中遇到了什么问题?