Python selenium等待的区别
强制等待 sleep()
1 | import time |
优点:简单方便.
缺点:缺点时不智能,设置的时间太短,
元素还没有加载出来,那照样会报错;设置的时间太长,
则会浪费时间,不要小瞧每次几秒的时间,case多了,
代码量大了,很多个几秒就会影响整体的运行速度了.
隐性等待 implicitly_wait()
1 | from selenium import webdriver |
优点:简单方便.
缺点:因为随着ajax技术的广泛应用,
页面的元素往往都可以时间局部加载,
也就是在整个页面没有加载完的时候,
可能我们需要的元素已经加载完成了,
那就么有必要再等待整个页面的加载
执行进行下一步,而隐性等待满足不了这一点.
显性等待(WebDriverWait)
selenium中的wait模块的WebDriverWait()方法,
配合until或者until_not方法,再辅助以一些判断条件,
就可以构成这样一个场景:每经过多少秒就查看一次locator的元素是否可见,
如果可见就停止等待,如果不可见就继续等待直到超过规定的时间后,报超时异常。
1 | from selenium import webdriver |
1 | 20:最长等待时间。 |