显式等待WebDriverWait()
是针对某个元素设定的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s, 如果在规定时间内没有加载出来那么就是会抛出TimeoutException
使用场景:当打开一个新页面,执行第一个元素操作的时候;当某一步操作会引发页面的加载,并且加载的内容包含了下一步需要操作的元素。一句话,就是当某个元素有加载过程的时候,就需要加上显示等待。
隐式等待implicitly_wait()
是设置的全局等待。设置等待时间,是对页面中的所有元素设置加载时间,如果超出了设置时间的则抛出异常。隐式等待可以理解成在规定的时间范围内,浏览器在不停的刷新页面,直到找到相关元素或者时间结束。
隐式等待有一个弊端,就是程序会一直等待整个页面加载完成,也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步,但有时候页面想要的元素早就在加载完成了,但是因为个别js之类加载特别慢,仍得等到页面全部完成才能执行下一步。太耗费时间。
强制等待sleep()
用以设置固定的线程休眠时间(s),使得整个脚本暂停。但是这种方式会导致这个脚本运行时间过长,不到万不得已尽可能少用,特殊情况下,时间设置最好不超过1秒,一般0.5秒
强制等待sleep与隐式等待implicitly_wait尽量少用,它会对测试用例的执行效率有影响。