当前位置: 首页 > news >正文

HoRain云--Selenium三大等待机制全解析

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

Selenium 等待机制详解

一、强制等待(Fixed Wait)

原理

代码示例

优缺点

适用场景

二、隐式等待(Implicit Wait)

原理

代码示例

优缺点

适用场景

三、显式等待(Explicit Wait)

原理

代码示例

常用条件

优缺点

适用场景

四、最佳实践建议

五、三种等待机制对比


Selenium 等待机制详解

在Selenium自动化测试中,合理的等待机制是确保脚本稳定性的关键。根据搜索结果,Selenium主要有三种等待机制:强制等待隐式等待显式等待。下面详细介绍每种机制:

一、强制等待(Fixed Wait)

原理

使用time.sleep(seconds)函数让程序暂停执行一段固定的时间,无论元素是否已经加载完成。

代码示例

import time from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.baidu.com") # 强制等待3秒 time.sleep(3) search_box = driver.find_element(By.ID, "kw")

优缺点

适用场景

二、隐式等待(Implicit Wait)

原理

findElement操作添加"全局重试"机制。只在调用driver.findElement(...)时生效,在超时时间内不断重试"查找元素",找到就返回,找不到就一直试到超时抛异常。

代码示例

from selenium import webdriver driver = webdriver.Chrome() # 设置隐式等待,最长等待30秒 driver.implicitly_wait(30) driver.get("https://www.baidu.com") search_box = driver.find_element(By.ID, "kw") driver.quit()

优缺点

适用场景

三、显式等待(Explicit Wait)

原理

针对特定条件(ExpectedCondition)进行等待,颗粒度细、可控性强。能等待元素状态、URL、文本、alert等多种条件。

代码示例

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get("https://www.baidu.com") # 等待元素可见 wait = WebDriverWait(driver, 10) # 最长等待10秒 search_box = wait.until(EC.visibility_of_element_located((By.ID, "kw"))) # 等待元素可点击 submit_button = wait.until(EC.element_to_be_clickable((By.ID, "su"))) # 等待URL包含特定字符串 wait.until(EC.url_contains("baidu.com"))

常用条件

优缺点

适用场景

四、最佳实践建议

  1. 优先使用显式等待:在需要精确控制等待条件时,显式等待是最可靠的选择
  2. 合理设置隐式等待:可以设置一个较短的全局隐式等待(如5-10秒)作为基础保障
  3. 避免过度使用强制等待:除非特殊场景,否则尽量避免使用time.sleep
  4. 组合使用:在实际项目中,通常会组合使用这三种等待机制
  5. 等待时间设置:根据网络环境和页面复杂度合理设置等待时间,避免过长影响测试效率

五、三种等待机制对比

特性强制等待隐式等待显式等待
等待对象固定时间元素查找特定条件
作用范围局部全局局部
精确度
适用场景调试、特殊场景基础元素加载动态内容、精确控制
推荐程度★☆☆☆☆★★★☆☆★★★★★

总结:在Selenium自动化测试中,显式等待是首选方案,隐式等待可作为全局基础保障,强制等待应尽量避免使用。合理组合这三种等待机制,可以显著提高自动化脚本的稳定性和执行效率。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

http://www.jsqmd.com/news/581494/

相关文章:

  • Vin象棋:AI视觉驱动,如何让中国象棋对弈从此告别手动摆棋?
  • 发现一个挺好用的免费API接口站点
  • 终极指南:如何使用fishhook实现iOS应用安全防护的5个核心技巧
  • 2026年商用厨具生产厂哪家技术强,性价比高的品牌推荐 - 工业推荐榜
  • 答辩前AI率高要不要跟导师说?处理顺序很重要
  • 终极S-UI分布式部署指南:多服务器协同架构设计
  • 基于STM32的光电感烟火灾报警器设计
  • 全自动智能测量设备品牌实力测评:2026年选购指南 - 品牌推荐大师
  • 2026年4月万国官方售后服务中心网点考察报告(新址) - 亨得利官方服务中心
  • 三步突破Cursor限制:开源工具全攻略
  • 没有美国实体如何快速合规用工?找 Safeguard Global 名义雇主 EOR服务商 - 品牌2026
  • nfs介绍与使用
  • 新手零压力上手:用快马ai学习ubuntu24.04基础操作与配置
  • 如何确保Kando在Windows上的安全性?完整代码签名验证指南
  • 保温钢管怎么选?2026年优质厂家推荐清单,螺旋管/防腐钢管/焊接钢管/TPEP防腐钢管,保温钢管直销厂家找哪家 - 品牌推荐师
  • 2026年陕西做智慧食堂会员管理公司排名,哪家口碑好 - myqiye
  • TaskingAI Docker部署终极指南:5分钟快速搭建AI应用开发平台
  • 如何实现八大网盘直链下载:终极解决方案指南
  • 提升中文编辑效率:notepad--本土化配置指南
  • 高效批量下载B站视频:BilibiliDown智能工具全攻略
  • 快马平台助力Nodejs后端服务快速原型验证,十分钟搭建可运行API
  • 2025 年 7 个压箱底 VS Code 插件,都是神器!
  • 西安智慧食堂管理综合服务,好用的公司有哪些? - mypinpai
  • 构建私有化ChatGPT:基于Nanbeige 4.1-3B与内网穿透的安全对话系统
  • 5步实现文档自动化下载:让kill-doc提升你的文档获取效率
  • RMBG-2.0开源镜像免配置教程:24GB显卡5分钟跑通透明背景生成
  • Z-Image Atelier 高可用部署架构设计:基于内网穿透的本地开发与测试
  • 百度网盘秒传工具:跨平台文件极速分享解决方案
  • 扫描仪哪个牌子比较好?选型避坑与推荐 - 工业三维扫描仪评测
  • 开源工具解决华硕笔记本性能配置难题:效率提升解决方案