Javascript 等待元素出现或返回false

Javascript 等待元素出现或返回false,javascript,testing,protractor,Javascript,Testing,Protractor,可以等待,直到元素出现在带有browser.wait的页面上(EC.presenceOf(元素)(按.id(“按钮”))),5000,“未找到按钮”) 当在页面上找不到元素时,这将引发错误。我不希望此函数抛出错误,相反,如果在5秒后未找到元素,它应该返回false 如何实现这一点?您可以尝试使用标准的try/catch来实现这一点。这将捕获从浏览器生成的异常。请等待并在捕获中处理它 try{ browser.wait(EC.presenceOf(element(by.id("button"

可以等待,直到元素出现在带有
browser.wait的页面上(EC.presenceOf(元素)(按.id(“按钮”))),5000,“未找到按钮”)

当在页面上找不到元素时,这将引发错误。我不希望此函数抛出错误,相反,如果在5秒后未找到元素,它应该返回
false


如何实现这一点?

您可以尝试使用标准的try/catch来实现这一点。这将捕获从浏览器生成的异常。请等待并在捕获中处理它

try{
   browser.wait(EC.presenceOf(element(by.id("button"))), 5000, "button not found")
}catch(){
   return false;
};

您可以尝试将if-else块与isdisplayed()函数一起使用,如

if(driver.findElement(By.xpath(noRecordId)).isDisplayed()){
return true;
}
else{
return false;
}

您可以使用布尔变量代替return来保存结果。

这对我来说不起作用,因为如果站点上存在元素,我首先必须等待一段时间(5秒)才能返回。然后,如果任何操作都不起作用,您可以使用
thread.sleep(5000)
来执行。(不推荐)