硬性等待
Thread.sleep(long millis);
优点:使用简单
缺点:容易造成时间浪费
隐式等待
在设置的超时时间范围内不断查找元素,直到找到元素或者超时 如:设置等待时间为5秒,在第3秒找到元素,不再继续等待
设置方式
driver.manage.timeouts().implicitlyWait(long time, TimeUnit unit);
优点:相对灵活
缺点: 设置是针对全局的,在WebDriver实例整个生命周期有效,但并不是所有的元素都需要等待。
不能适用条件更复杂的情况,如:元素可点击、元素可见
显式等待
显式等待通常是我们自定义的一段代码,用来等待某个条件发生后再继续执行后续代码(如找到元素、 元素可点击、元素已显示等)
使用方式:
WebDriverWait wait = new WebDriverWait(); WebElement element = wait.until(expectCondition);
优点: 每隔一段时间扫描一次页面,检查元素是否满足等待结果条件,比如查找元素,则检查元素是否存在, 不存在则继续等待,直到找到或超时。 该方式不是全局设置,因此特定需要等待的元素可以这样处理,推荐优先使用这一种方法。
总结
原文:https://www.cnblogs.com/zhiyu07/p/14182397.html