java - catch 方法执行时间较长

标签 java selenium-webdriver

在 Selenium 自动化中,我使用下面的代码检查元素显示状态

public boolean isDisplayed(String xpath){
try{
return driver.findElement(By.xpath(xpath)).isDisplayed();
}catch (Exception e){
return false;
}

}

但问题是,如果元素没有显示,它将转到catch语句,并且执行catch语句需要更多时间。怎样才能让它快点呢。你能帮我一下吗?提前致谢

最佳答案

首先,尝试使用显式等待来等待元素的可用性,然后检查 isDisplayed 属性: 等待的原因是隐式等待元素,因为当元素不可交互时,它会等待元素或达到等待时间。

WebDriverWait wait = new WebDriverWait(WebDriver, timeSpan);            wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.xpath(xpath)));
try{
return driver.findElement(By.xpath(xpath)).isDisplayed();
}
catch (Exception e){
return false;
}

关于java - catch 方法执行时间较长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58353880/

相关文章:

python - 如何在 Python 中使用 Selenium?

java - Jersey、Restful Web 服务、拒绝跨域访问

java - 如何删除末尾的特定逗号

java - OpenGL 上下文 (libgdx)

java - android-java 如何取消异步任务

java - Selenium Webdriver - Span Div CSS 下拉框 - 无法单击元素

java - selenium Webdriver 在页面上找不到元素

javascript - 如何点击包含变量为 "href"属性的链接?

java - 如何将字符串变量中的一个字符更改为字符串

java - 反序列化 bean 需要范围依赖