selenium三种等待
Selenium 自动化入门小白都有遇到过如下情况:运行时报错说找不到元素,但是检查确认了好多遍元素定位没有问题,怎么会找不到呢? 然后一查,哎呦,果然是 selenium 运行机制都没搞清楚。在我们打开一个页面时,页面有一个加载的过程,但是我们在页面没有加载完的时候去查了那个元素,当然查不到,那怎么办呢?那就等一下呗,等页面都加载完了,或者我要找的元素加载出来了,我再去执行下面的操作。 等待也是有很多讲究的,用的好了才能让自动化更有效率, level 才更高。selenium中支持三种等待方式,各有特点,各有不足,适当运用可以让我们的自动化快的飞起。 一、 强制等待( sleep ) 强制等待方法即用 time.sleep(n) ,当运行到这里的时候,不管是什么情况下,程序运行到这里都会停下来 n 秒, n 秒之后再继续执行下面的操作。 这种等待用作调试很有用,有时候也可以在代码里这样用,但是不建议总是这样等待,太死板,严重影响程序执行速度。 二、 隐性等待( implicitly_wait ) 隐性等待对整个 driver 周期起作用,就是说,selenium中使用的这个浏览器不管打开哪个网站 implicitly_wait 都对它有效。所以它只需要设置一次就行,不要像 sleep 一样走到哪都随手写一个。 那么隐性等待到底是怎么工作的呢? 隐性等待是设置了一个最长等待时间