python selenium常见的3种等待方式
在自动化测试中,常见的等待页面加载的方式包括以下几种:
1. 隐式等待(Implicit Wait):
driver.implicitly_wait(10)
使用隐式等待,指定一个全局的等待时间,在查找元素时等待一定的时间,如果元素在规定的时间内出现,就立即执行操作;如果超过等待时间仍未出现,就抛出异常。
2. 显式等待(Explicit Wait):
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC wait = WebDriverWait(driver, 10) element = wait.until(EC.presence_of_element_located((By.ID, "element_id")))
使用显式等待,指定等待的条件和最长等待时间。等待直到指定的条件成立或达到最长等待时间,然后执行操作。上述示例中使用了条件`presence_of_element_located`,即等待元素出现在页面上。
3. 强制等待(Sleep):
import time time.sleep(5)
使用强制等待,即暂停脚本的执行一定的时间。在指定的时间内,脚本会暂停执行,然后继续执行后续操作。这种方式不是最佳实践,因为固定的等待时间可能不够或过长。
这些等待方式可以根据需要灵活使用。显式等待比隐式等待更灵活,可以在特定条件下等待,而不是固定的时间。如果页面加载时间不确定或元素出现的时间不确定,建议使用显式等待来等待元素的出现。避免使用过长的固定等待时间,以提高测试效率和准确性。
这些等待方式在自动化测试中有以下区别:
- 隐式等待(Implicit Wait):
- 全局设置:隐式等待是在创建WebDriver对象后,设置全局的等待时间,对整个测试过程都起作用。
- 等待时间:指定一个固定的等待时间,在查找元素时等待一定时间。如果元素在规定的时间内出现,立即执行操作;如果超过等待时间仍未出现,就抛出异常。
- 显式等待(Explicit Wait):
- 个性化设置:显式等待是在特定条件下等待,可以根据具体的需求设置不同的等待条件和等待时间。
- 等待条件:可以根据不同的条件等待元素出现或满足特定条件,例如等待元素可见、存在、可点击等。
- 最长等待时间:指定一个最长的等待时间,在这个时间内等待指定条件成立,如果超过最长等待时间仍未满足条件,就抛出异常。
- 强制等待(Sleep):
- 固定等待时间:直接暂停脚本的执行一定的时间,不论元素是否出现或满足条件。
- 不灵活:使用固定的等待时间,可能导致测试等待时间过长或不足。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义