StaleElementReferenceException
页面元素未刷新出来,就对元素进行捕获,因此引发该异常。
// 此时,如果文本元素未加载,则会引发异常。
driver.findElement(By.cssSelector(parmeter1)).getText();
解决:多等会儿。
// 1、检测元素是否存在
public static boolean elementExist(Webdriver driver, String parmeter1){
try {
driver.findElement(By.cssSelector(parmeter1)).getText();
return true;
} catch (Exception e) { // 如果获取文本异常,则返回 false
LOGGER.info("等待元素加载……");
return false;
}
}
// 2、添加延时
// condition = elementExist(Webdriver driver, String parmeter1);
for (int i = 0; i < 20; i++) {
if (condition) {
return true;
}
waitTime(); // 加延时
}