Selenium WebDriverWait和expected_conditions来定位实时更新的元素

WebDriverWait 是 Selenium WebDriver 的一个等待机制,用于等待一个特定条件成立直到一个最大的时间阈值。这种等待方式是显式等待,与隐式等待相对。显式等待提供了一种更灵活的方式来等待页面上的元素或条件,因为它允许你指定等待条件和时间。

WebDriverWait 通常与 expected_conditions 一起使用,来指定等待的条件。当条件满足时,等待操作会立即结束,脚本继续执行。如果达到最大等待时间,而条件仍然不满足,则会抛出一个 TimeoutException

expected_conditions 是 Selenium WebDriver 中用于等待某些条件出现或消失的一组预定义的条件。这些条件提供了一种有效的方式来等待页面上的元素变得可见、可点击或满足其他条件,这对于处理动态内容的网页特别有用。

使用 expected_conditions 时,通常会与 WebDriverWait 类一起使用,以提供一个时间上的限制,确保脚本在继续执行前等待特定的条件满足。这样可以避免脚本因为页面元素还没加载完成而尝试进行操作导致的错误。

下面是一些常用的 expected_conditions

  • presence_of_element_located:等待直到元素出现在DOM中,但不一定可见。

  • visibility_of_element_located:等待直到元素出现在DOM中且可见(宽和高都大于0)。

  • element_to_be_clickable:等待直到元素可见且可点击。

  • title_contains:等待直到页面标题包含给定的文本。

  • alert_is_present:等待直到弹窗出现。

    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.Firefox()
    driver.get("http://example.com")

    try:
    # 等待直到元素可见且可点击
    clickableElement = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "myElementId"))
    )
    clickableElement.click()
    finally:
    driver.quit()

WebDriverWait 等待最多10秒钟,直到ID为"你的元素ID"的元素变得可见。如果在10秒内元素变可见,则继续执行后面的代码;如果10秒后元素仍然不可见,则会抛出 TimeoutException

相关推荐
程序员小远13 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
LT101579744414 天前
2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
前端·测试工具·自动化
程序员三藏14 天前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
深蓝电商API14 天前
Selenium 5.0 全新架构解析:值得升级吗?
爬虫·selenium
专业机床数据采集14 天前
基于 Wireshark 抓包逆向设备通信协议,并用 C# UDP协议跨平台 实现宝元数控程序列表读取、上传、下载和删除
网络·测试工具·wireshark·程序传输·宝元数控·dnc·数控程序传输
程序员龙叔14 天前
从 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
自动化测试·软件测试·python·软件测试工程师·测试工具·性能测试·ai测试
Saniffer_SH14 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
川石课堂软件测试14 天前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos
LT101579744415 天前
2026年开源自动化测试工具选型指南:功能与适用场景解析
测试工具·开源·自动化