隐式等待;智能等待:好处是效率比较死等高
1、隐式等待是一种智能等待,他可以规定在查找元素时,在指定时间内不断查找元素
如果找到则代码继续执行,直到超时没找到元素才会报错,也就是说如果在第三秒找到元素,则剩下的7秒不会被等待
2、隐式等待是一个全局性等待,一旦设置则针对设置以后的所有findElement方法生效,仅仅针对查找元素生效
每一个findElement方法都是重新计时,都是10秒
3、可以随时更改隐式等待,更改后针对他以后的所有findElement方法生效
4、当隐式等待不生效的时候,可以用死等代替
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);


显式等待
1、显示等待也是一种智能等待,在指定超时时间范围内只要满足操作的条件就会继续执行后续代码
如果不满足条件则会一直等到超时
2、显示等待可以自定义显示等待的条件
3、显示等待是针对单一元素或者一组元素生效
WebDriverWait wait =new WebDriverWait(driver,10);//显式等待的对象创建
wait.until(new ExpectedCondition(){//直到满足这个新的条件
@Override
public Boolean apply(WebDriver input) {//自动生成一个匿名类
// 这个新的条件是从获取到的页面资源中是否包含hhhtest1,欢迎来到信息
return input.getPageSource().contains(“hhhtest1,欢迎来到”);
}
});
//显示等待针对一组元素生效
WebDriverWait wait = new WebDriverWait(driver,10);
List titles = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector(".am-text-truncate-2.goods-title")));



隐式等待和显示等待的区别:
1、隐式等待是全局的,可以随时更改的,显示等待是针对单一元素或者一组元素的
2、隐式等待只能针对元素查找方法,显示等待可以自定义等待条件

————————————————


原文链接:https://blog.csdn.net/weixin_45103552/article/details/118198427

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐