思考
在自动化过程中,元素出现收网络环境,设备性能等多种因素影响,因此元素加载时间可能不一致,从而导致元素无法定位超时报错,但是实际上元素是正常加载了的,只是出现时间晚一点而已,那么如何解决这个问题呢?
元素等待作用
设置元素等待可以更加灵活的制定等待定位元素的时间,从而增加脚本的健壮性,提高执行效率
元素等待类型
强制等待
设置固定的等待时间,使用sleep()方法即可实现
隐式等待
隐式等待是针对全部元素设置等待时间
显示等待
显示等待是针对某个元素来设置等待时间,方法WebDriverWait格式参数如下from selenium.webdriver.support.uiimport WebDriverWait
WebDriverWait(driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None)
------driver:WebDriver
------timeout:最长超时时间,默认以秒为单位
------poll_frequency:休眠时间的间隔时间,默认为0.5s
------ignored_exceptions:超时后的异常信息,默认情况下抛NoSuchElementException异常
WebDriverWait()一般和util()或util_not()方法配合使用,另外lambda提供一个运行是动态创建函数的方法