WebDriver:检查元素是否存在?
2022-08-31 06:41:49
如何检查Web驱动程序是否存在元素?
使用尝试捕获真的是唯一可能的方法吗?
boolean present;
try {
driver.findElement(By.id("logoutLink"));
present = true;
} catch (NoSuchElementException e) {
present = false;
}
如何检查Web驱动程序是否存在元素?
使用尝试捕获真的是唯一可能的方法吗?
boolean present;
try {
driver.findElement(By.id("logoutLink"));
present = true;
} catch (NoSuchElementException e) {
present = false;
}
您也可以执行以下操作:
driver.findElements( By.id("...") ).size() != 0
这节省了令人讨厌的尝试/捕获
附言
或者更准确地说,通过在这里@JanHrcek
!driver.findElements(By.id("...")).isEmpty()
我同意Mike的答案,但是如果没有找到可以打开/关闭的元素,则有一个隐含的3秒等待,如果您经常执行此操作,这将非常有用:
driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);
boolean exists = driver.findElements( By.id("...") ).size() != 0
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
将其放入实用程序方法中应该可以提高性能,如果您正在运行大量测试