1、sleep(强制等待,进程休眠)
1、作用于局部。浪费时间。看情况使用。
2、implicitly_wait(30)(隐式等待)
1、作用于全局。
2、需等待页面完全加载完成,之后才会去查找元素。(游览器左上角转圈结束表示加载完成)
3、如果页面元素加载已完成。但是部分js之类的加载失败(此时页面转圈是一直在转的),会继续加载,直到30s。
4、且有切换页面的时候。需加强制等待,不然会报错。
&一般自动化脚本不会用隐式等待
3、WebDriverWait(显示等待)
WebDriverWait(self, driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None)
1、在a秒内,每间隔b秒内查询一次。查询到了就返回,没查询到就等待下一次查询,超过a秒还未查询到就抛出timeout异常。
2、作用于局部
3、格式如下:
1、element = WebDriverWait(driver,10).until(lambda x: x.find_element_by_id("kw"))
element.send_keys("xxx")
注:对照上面,第一个参数self忽略,第二参数传driver不用说,第三个参数timeout传10,可以自行修改。第四个参数poll_frequency不修改默认0.5,可以自行修改。
第五个ignored_exceptions默认忽略异常。(这里的x传的是driver。lambda学过python基础应该都知道)