页面中元素不存在的最佳方式是什么。例如TEST - 当有数据时,这将出现此链接不存在。
如何快速识别这个因为我遇到全局超时?全局等待元素让我长时间在页面上
有什么方法可以轻易识别出来吗?
答案 0 :(得分:0)
尝试使用findElement找到元素。如果元素不存在,您将收到异常。基于此,您可以决定下一步要做什么。
try {
WebElement element = driver.findElement(By.id(<element selector string>)
}
catch(NoSuchElementException nse)
{}
答案 1 :(得分:0)
假设您不知道是否会有数据,我仍然会使用等待,即使它是一秒或2,只是捕获异常并且不像之前建议的那样
try {
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("elementId")));
element = driver.findElement(By.Id("elementId");
} catch (NoSuchElementException | TimeoutException) {}
当然,当你点击页面时,你已经知道链接是否存在,并且不需要等待加载任何内容,然后按照之前的建议捕获异常并对其执行任何操作。
答案 2 :(得分:0)
您可以使用以下函数,它将所有元素存储在列表中,如果大小大于true,则存在元素:
public boolean isElementPresent(By Locator){
List<WebElement> allItems = driver.findElements(locator);
if (allItems.size() >0){
return true;
}else{
return false
}
}