selenium等待方式
selenium等待方式
显式等待
wait = WebDriverWait(driver, timeout=10, poll_frequency=1, ignored_exceptions=[ElementNotVisibleException, ElementNotSelectableException])
element = wait.until(lambda d: d.find_element_by_tag_name("p"),)
WebDriverWait构造器参数
参数 | 描述 |
---|---|
driver | 浏览器对象 |
timeout | 最大等待时间 |
poll_frequency | 检查频率,默认0.5秒 |
ignored_exceptions | 忽略的异常列表, 如果写了异常类,那么查找元素时抛出这个列表的异常将被忽略, 默认是NoSuchElementException |
until方法参数
参数 | 描述 |
---|---|
method | 接收一个方法, 这个方法当返回值为true时则返回这个值 |
message | 查找失败时,抛出异常携带的消息 |
隐式等待
隐式等待是告诉WebDriver如果在查找一个或多个不是立即可用的元素时轮询DOM一段时间。
警告: 不要混合使用隐式和显式等待。这样做会导致不可预测的等待时间。例如,将隐式等待设置为10秒,将显式等待设置为15秒,可能会导致在20秒后发生超时。
driver.implicitly_wait(10)