python自动化 - 等待
为什么等待:
# 页面响应比代码运行慢
# 网络延迟、性能、页面渲染慢
等待有一下几种:
1. time.sleep - 强制等待
2. 智能等待: 最多等待15秒,如果 在15秒内元素出现则继续执行下一行代码,超时抛出异常 TimeoutException, NosuchElementExpthion
隐性等待:2中场景,1个元素被找到-元素存在(找到、存在不一定可用)/1条命令执行完成 - api执行
每一个会话当中,只需要被调用一次。
会话: 从你打开浏览器,到quit关闭整个过程。 ---- sessionID
显性等待: 等待元素课件? 等待url变更为xxx?? 等待新的窗口出现?? 等待元素可用?
在你需要的地方,直接用显性等待。 条件 + 等待
等待: 等待上线 - 15秒 轮询周期 - 多少秒去企鹅人一下条件是否成立。 默认0.5s。
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(EC.visibility_of_element_located("xpath", "//a[contains(@href,'http://tieba.baidu.com/')]")) # 等待元素可见的条件
# visibility_of_element_located 判断元素是否存在