如何检查web驱动程序中是否存在某个元素?
使用try catch真的是唯一可能的方法吗?
boolean present;
try {
driver.findElement(By.id("logoutLink"));
present = true;
} catch (NoSuchElementException e) {
present = false;
}
发布于 2011-06-29 21:57:49
您也可以这样做:
driver.findElements( By.id("...") ).size() != 0
这就省去了繁琐的try/catch
附注:
或者更准确地说是@JanHrcek here
!driver.findElements(By.id("...")).isEmpty()
发布于 2012-01-09 22:57:31
我同意Mike的回答,但是如果找不到元素,会有一个隐含的3秒等待,这可以打开/关闭,如果你经常执行这个操作,这是很有用的:
driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);
boolean exists = driver.findElements( By.id("...") ).size() != 0
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
如果您正在运行大量测试,那么将其放入实用程序方法中应该会提高性能
发布于 2014-06-17 10:19:55
这对我来说每次都很有效:
if(!driver.findElements(By.xpath("//*[@id='submit']")).isEmpty()){
//THEN CLICK ON THE SUBMIT BUTTON
}else{
//DO SOMETHING ELSE AS SUBMIT BUTTON IS NOT THERE
}
https://stackoverflow.com/questions/6521270
复制相似问题