一、强制等待
强制等待也就是暂停,无论你现在打算做什么事情,都暂停;我们来看案例 这里可以看到我们要使用强制等待,需要导入time,这里我启动了driver,然后强制等待了两秒钟,两秒钟后我调用了driver的get方法,访问百度页面。 强制等待的优点:使用起来比较方便,简单。 强制等待的缺点:就是无法精准的把握等待的时间,如果强制等待在程序中使用多了,会影响整个自动化的运行时间。
二、隐式等待
隐式等待就是设置了一个等待时间给你加载全部的内容,然后在这段时间内如果你没有加载完,就给你抛出超时的异常;如果你在这段时间内某个时间完成了,就立即执行下一步。 这里我们可以看到,要使用隐式等待,我们就要调用implicitly_wait方法。 隐式等待的优点:隐式等待是一个全局等待,也就是说只要设置一次,无论你执行到哪一步,它都会先执行隐式等待,再执行下一步操作 隐式等待的缺点:①必须整个页面加载完了才能执行下一步,同样无法精准的把握等待的时间,有时候我们要的元素已经出现,但还是需要等到全部加载完成才能进行下一步;②设置了一次之后,所有的执行前面都会先执行一次隐式等待
三、显示等待
显示等待就是指定等待元素、等待最长时间、步长(也就是寻找元素的频率),然后等待这个元素找到或未找到。直接上案例。 这里可以看出显示等到使用起来就相对前面的两种等待复杂的多,显示等待一般与until和until_not进行连用,until表示:等待该元素加载;until_not则反之 显示等待的优点:对某个元素进行精准的等待,不会因为等待而耗费时间,如果条件成立,立即执行下一步,不成立则抛出异常 显示等待的缺点:使用起来相对其他两种等待方式较复杂
|