写点什么

软件测试 / 测试开发 / 全日制 / 测试管理丨 selenium 的三种等待方式

作者:测试人
  • 2024-01-12
    北京
  • 本文字数:1295 字

    阅读完需:约 4 分钟


在 Selenium 中,等待是一种重要的技术,用于处理页面加载和元素查找的时间差异。以下是 Selenium 中经典的三种等待方式:

隐式等待:

  • 描述: 隐式等待是在查找所有元素时设置的全局等待时间。一旦设置,它将在整个测试执行期间都起作用。

  • 用法: 设置隐式等待的代码通常在初始化 WebDriver 时完成,如下所示:

from selenium import webdriver
driver = webdriver.Chrome()driver.implicitly_wait(10) # 设置等待时间为10秒
复制代码
  • 作用: 如果 WebDriver 在查找元素时未立即找到,它将等待一段时间再次查找,直到找到元素或达到等待时间为止。

显式等待:

  • 描述: 显式等待是在特定条件下等待特定元素的等待方式。它允许你设置等待的最长时间,并在等待期间以一定的频率调用特定的条件,直到条件成立或超时。

  • 用法: 使用 WebDriverWait 和 expected_conditions 库来定义等待条件,如下所示:

from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "myElement")))
复制代码
  • 作用: 在等待时间内,显式等待会不断检查特定条件是否成立,一旦成立就继续执行后续代码,否则在超时后抛出异常。

强制等待:

  • 描述: 线程休眠是一种直接暂停执行的方式,不考虑元素是否已经加载完成。这是一种相对简单的等待方式,但不推荐在大多数情况下使用,因为它不够灵活,可能导致不必要的等待时间。

  • 用法: 使用 time.sleep()函数来实现线程休眠,如下所示:

import time
time.sleep(5) # 休眠5秒
复制代码
  • 作用: 线程休眠直接暂停执行指定的时间,无论元素是否已经准备好。

推荐

Python 全栈开发与自动化测试开发班

由浅入深实战进阶,从小白到高手

以 Python 全栈开发为基础,深入教授自动化测试技能,为学员打造全面的技术能力。通过系统学习和实际项目实战,学员将具备在职场中脱颖而出的竞争力。不仅能够灵活运用 Python 进行开发,还能够保障项目质量通过自动化测试手段。这是一个全面提升职业竞争力的机会。

课程详情

Python 开发必备基础技能与项目实战

Pvthon 编程语言/算法和数据结构/面向对象编程 Web 后端开发/前端开发/测试管理平台项目实战

人工智能 ChatGPT 实战

人工智能辅助学习各种开发和测试技能/Pytorch 深度学框架/平台开发实战

数据分析与自动化办公

数据采集/Pandas 与数据处理技术/ECharts 与数据可视化技术/爬虫实战/自动化办公/批量文件处理

UI 自动化测试与高级项目实战

Web 自动化测试/App 自动化测试/ PageObject 设计模式

接口自动化测试

接口协议分析/Mock 实战/服务端接口测试

性能测试

性能测试流程与方法/JMeter 脚本参数化/Grafana 监控系统搭建

简历指导与模拟面试

1V1 简历指导/模拟真实面试/测试开发岗面试全攻略名企私教服务 名企专家 1v1 辅导/行业专家技术指导/针对性解决工作难题/绩效提升辅导与晋升复盘

课程亮点

名企私教服务 先学习后付费 高额奖学金

专属社群+晚自习在线答疑

5V1 全方位辅导作业+考试强化学习效果

简历修改 模拟面试 就业内推 面试复盘


福利一: 测试开发精品课免费学


福利二:免费领取技能图谱 &大厂面试题合集



用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发/全日制/测试管理丨selenium的三种等待方式_软件测试_测试人_InfoQ写作社区