页面中不存在元素的最佳方式是什么?例如 TEST - 当有数据时会出现此链接,否则此链接将不存在。
由于我遇到了 Global timeout 问题,如何快速识别?全局等待元素让我在页面上停留很长时间
有什么方法可以快速识别吗?
页面中不存在元素的最佳方式是什么?例如 TEST - 当有数据时会出现此链接,否则此链接将不存在。
由于我遇到了 Global timeout 问题,如何快速识别?全局等待元素让我在页面上停留很长时间
有什么方法可以快速识别吗?
假设您不知道是否会有数据,我仍然会使用等待,即使它是一秒钟或两秒钟,并且只是捕获异常而不像之前建议的那样
try {
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("elementId")));
element = driver.findElement(By.Id("elementId");
} catch (NoSuchElementException | TimeoutException) {}
当然,如果当您点击页面时,您已经知道链接是否应该存在并且无需等待任何内容加载,那么可以,如之前建议的那样捕获异常并且不做任何事情。
尝试使用 findElement 定位元素。如果该元素不存在,您将收到异常。基于此,您可以决定下一步要做什么。
try {
WebElement element = driver.findElement(By.id(<element selector string>)
}
catch(NoSuchElementException nse)
{}
您可以使用以下函数,它将所有元素存储在列表中,如果大小大于真实元素存在:
public boolean isElementPresent(By Locator){
List<WebElement> allItems = driver.findElements(locator);
if (allItems.size() >0){
return true;
}else{
return false
}
}