直接等待
使用方式
time.sleep(等待时间)
原理
强制线程等待
适用场景
调试代码,临时性添加
隐式等待
使用方式
driver.implicitly_wait(等待时间)
原理
在时间范围内,轮询查找元素
适用场景
解决找不到元素问题,无法解决元素交互问题(即无法控制css或js调用程序代码过程中花费的这段时间)
显示等待
使用方式
WebDriverWait(driver实例, 最长等待时间,轮询时间).until(结束条件)
原理
设定特定的等待条件,轮询操作(即先设定最长等待时间,在轮询时间间隔内,轮询访问css或js调用程序代码后的元素,直到访问结果满足until()函数中的元素属性值)
适用场景
解决特定条件下的等待问题,比如点击等交互性行为(即定位的元素,需要经过css或js调用程序代码后才能显示出来时,可以通过显示等待来判断该元素何时能被加载出来。)