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

expected_conditions(EC)与元素相关的常用方法

与元素(Element)相关的 expected_conditions,分为存在、可见、可点击、不可见/消失、属性/文本、选中状态等几类

引用:

from selenium.webdriver.support import expected_conditions as EC

1. 元素存在(Presence)

等待元素出现在 DOM 中(不一定可见)

elem = wait.until(EC.presence_of_element_located((By.ID, "username")))

等待所有匹配的元素都出现在 DOM 中,返回列表。

elems = wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, "item")))

2. 元素可见(Visibility)

等待元素存在且可见(宽高>0,不被隐藏)

btn = wait.until(EC.visibility_of_element_located((By.ID, "submit")))

等待所有匹配的元素都可见,返回列表。

items = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, ".list li")))

3. 元素可点击(Clickable)

等待元素可见且启用(非 disabled),常用于按钮。

button = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[text()='提交']"))) button.click()

4. 元素不可见或消失

等待元素不可见或不存在于 DOM。常用于等待 loading 遮罩消失。

wait.until(EC.invisibility_of_element_located((By.CLASS_NAME, "loading-spinner")))

等待一个已存在的元素从 DOM 中移除(页面刷新或替换)。

old_elem = driver.find_element(By.ID, "old") # 触发页面刷新... wait.until(EC.staleness_of(old_elem))

5. 元素文本与属性

等待元素的文本内容包含指定文字。

wait.until(EC.text_to_be_present_in_element((By.ID, "status"), "成功"))

等待元素的value属性包含指定文字(用于输入框)

wait.until(EC.text_to_be_present_in_element_value((By.NAME, "search"), "关键词"))

等待元素包含某个属性(不管值)

element_attribute_to_include(locator, attribute)


等待元素的指定属性值包含给定子串。

wait.until(EC.element_attribute_to_include((By.ID, "link"), "href", "baidu"))

6. 复选框/下拉框选中状态

等待给定元素被选中

element_to_be_selected(element)

等待定位到的元素被选中

element_located_to_be_selected(locator)

等待元素的选中状态等于预期布尔值

element_selection_state_to_be(element, is_selected)

等待定位到的元素选中状态等于预期

element_located_selection_state_to_be(locator, is_selected)

checkbox = driver.find_element(By.ID, "agree") wait.until(EC.element_to_be_selected(checkbox))
http://www.jsqmd.com/news/583907/

相关文章:

  • 技术创业中的技术选型:从内核到云原生
  • 2025-2026年杭州会计师事务所推荐:五大口碑服务评测评价领先 - 品牌推荐
  • C语言main函数详解:从原理到实践
  • 探索混合动力汽车Simulink整车模型:并联P2构型与基于规则的控制策略
  • Ubuntu 20.04安装PyTorch 2.7.1全攻略,《黑马商城》微服务保护-详细介绍【简单易懂注释版】。
  • 2026算力租赁平台深度测评:共绩算力与海外大厂CoreWeave、AWS同台竞技
  • 2026年互联网Java工程师高级面试八股文汇总(1260道题目附解析)
  • Redis中的分布式锁(步步为营)
  • 005.串口调试功能实现|千篇笔记实现嵌入式全栈/裸机篇
  • AI工具实战--Agent Skills入门:把重复流程封装成可复用的能力包
  • MAX30101心率血氧传感器驱动开发与嵌入式集成指南
  • 新手小白部署阿里云服务器
  • spring boot在普通方法中获取HttpServletRequest及其使用的方式
  • _C++精灵库算法可视化程序
  • 外企转华为的技术人转型观察与建议
  • Kubernetes网络策略深度解析
  • AI工具实战--VibeCoding开发流程:写代码前的9步准备
  • 本地LLM部署工具(写给小白的LLM工具选型系列:第一篇)
  • CFPS 数据清洗教程:带你轻松上手
  • AI工具实战-- 普通人自学AI必知的30个工具清单
  • 4类URPC2021水下目标检测数据集该数据集拥有7600张图片,拥有4个类别,分别是[‘holothurian‘, ‘echinus‘, ‘starfish‘, ‘scallop‘]数据集是VO
  • ### 3. 工业级鲁棒性:动态参数控制
  • OpenClaw长任务省token方案:Qwen3-32B私有镜像实测对比
  • 深耕公考七载,以师者匠心筑就学员上岸之路
  • STM32三区存储优化LoRa OTA升级速度
  • 10款高效答辩AI工具(含爱毕业aibiye)与模板使用体验分享
  • 基于YOLOV8的狗狗前端检测识别成品项目开箱即用,开箱即用,开箱即用该项目具有如下5个优势:① 包含狗狗检测数据集(mtdata_dog_cls11)共884张图片,11种类别,已按照7:2:
  • AI工具实战--MCP是什么:让AI真正连接外部世界的协议
  • 2025-2026年美国投资移民中介推荐:五大口碑服务评测评价领先 - 品牌推荐
  • WIZ820ioInterface:面向工业场景的W5500嵌入式以太网驱动HAL