1、sleep()方法
Thread.sleep(60000)强制等待60s
这个方法是最不推荐的,是用线程等待的方式来实现,每次元素出现在页面的时间不一样,如果设置的时间长了,白白浪费了时间,如果设置的时间短了,脚本依然会报没有找到元素的错误。
2、WebDriver PageLoadTimeOut()方法
driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
这个方法实际上跟上面那个是一样的,也不推荐
3、隐式等待implicitlyWait()
原理:隐式等待,就是在创建driver时,为浏览器对象设置一个等待时间。这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。
注:此处设置的等待时间 是针对全局设置的,webdriver中执行所有命令的超时时间都设置为second秒了
private boolean isElementPresent(By by) {
try {
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
4、显示等待WebDriverWait()
WebDriverWait wait = new WebDriverWait(driver, timeOut); // timeOut为等待时间,单位秒
wait.until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
boolean loadcomplete = d.findElement(locator).isDisplayed();
return loadcomplete;
}
});
}