写代码时,特别是涉及到其他外部可执行文件调用时,通常会出现调用程序还未生成结果,后面的程序就自动执行的情况。而通常情况下,前一步调用的生成结果是下一步程序的输入文件,因此出现找不到该文件或打不开该文件的情况,此时可以通过设置等待时间来满足程序进程的需求。
Selenium Webdriver中的等待方式可以分为三种:
(1)导入time包,通过time.sleep()设置等待时间,括号内为固定设置的等待时间。
import time
time.sleep(10) # 设置等待时间为10s
(2)隐式等待,直接调用implicitly_wait()方法,()为传入等待时间。与time.sleep不同的是,此时括号内设置的是最长等待时间,而非固定等待时间。
具体来说,在程序执行过程中,设置命令执行最长等待时间,若在规定时间内命令被执行完成,则执行下一步,否则继续等待至最长等待时间截止。
3、显式等待,导入WebDriverWait和expected_conditions包,调用until()者until_not()方法。在设置时间内,设置一定条件,默认每隔一段时间检测一次当前页面某个元素是否存在(设置的条件是否正确),如果在规定的时间内找到了元素(条件正确),则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常(条件不满足)。默认检测频率为0.5s,默认抛出异常。
参考链接:python-等待_du346568978的博客-CSDN博客_python等待blog.csdn.net