如何解决如何在查找 UI 上不存在的 webelement 时绕过隐式等待条件?
我正在自动化一个场景,其中特定的 Web 元素可能会或可能不会显示在 UI 上。如果它正在显示,那么我想对其执行特定操作。我正在使用以下逻辑
AutoResetEvent
只要元素在 UI 上可见,代码就可以正常工作。但是在不显示元素的情况下,“element.isdisplayed()”会等待元素 10 秒(即我为驱动程序会话定义的隐式等待时间)。
我希望我的脚本不要等待元素出现的那 10 秒,而是继续执行进一步的操作。知道我应该在这里采用什么方法吗?
解决方法
似乎您可以通过使用 WebDriverWait
减少超时值来实现。
尝试创建一个布尔函数来在特定时间检查元素是否存在。
public boolean checkElement(By locator,int seconds) {
boolean find = false;
try {
new WebDriverWait(driver,seconds).until(ExpectedConditions.presenceOfElementLocated(locator));
find = true;
} catch (Exception e) {
// TODO: handle exception
}
return find;
}
只需拨打:
By locator = By.name("yourLocator");
if(checkElement(locator,1)) {
//perform here
....
}
以下导入:
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
请删除您之前声明的 implicitWait
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。