python selenium 中的显示等待WebDriverWait与条件判断举例

本文介绍了如何在Python的Selenium库中使用WebDriverWait进行显示等待,并展示了各种条件判断的实例,包括元素的存在、可见性、文本匹配、可点击性等,帮助理解如何更精确地控制网页元素的等待时机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

base_url = "http://www.baidu.com"
driver = webdriver.Firefox()
driver.implicitly_wait(5)
'''隐式等待和显示等待都存在时,超时时间取二者中较大的'''
locator = (By.ID,'kw')
driver.get(base_url)

WebDriverWait(driver,10).until(EC.title_is(u"百度一下,你就知道"))
'''判断title,返回布尔值'''

WebDriverWait(driver,10).until(EC.title_contains(u"百度一下"))
'''判断title,返回布尔值'''

WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'kw')))
'''判断某个元素是否被加到了dom树里,并不代表该元素一定可见,如果定位到就返回WebElement'''

WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,'su')))
'''判断某个元素是否被添加到了dom里并且可见,可见代表元素
`WebDriverWait` 是 Selenium中的一个重要工具类,用于在浏览器操作中实现延迟和条件等待,以提高自动化测试的稳定性和可靠性。它基于 WebDriverWait 函数,通常配合 `ExpectedConditions` 条件判断一起使用。 以下是 `WebDriverWait` 方法的一些主要参数: 1. **driver**: WebDriver 对象,代表正在控制的网页浏览器实例。 2. **timeout**: 这是一个必需的参数,表示最长等待时间(以秒为单位),超过这个时间如果没有满足指定的条件,将会抛出异常。 3. **polling_frequency**: 可选参数,指定检查条件的频率,默认值通常是默认系统设置或500毫秒。 4. **condition**: 需要满足的预期条件,可以是 `ExpectedConditions` 类提供的各种条件,如 `presence_of_element_located()`、`element_to_be_clickable()` 等,表示元素何时会出现、加载完成等。 例如,如果你想等待某个元素在页面上存在并且可见,你可以这样做: ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 创建WebDriverWait实例 wait = WebDriverWait(driver, 10) # 设置最大等待时间为10秒 # 定义期望的条件 - 元素存在并可点击 element = wait.until(EC.presence_of_element_located((By.ID, 'yourElementId'))) # 或者如果想要等待元素变为可点击 wait.until(EC.element_to_be_clickable((By.XPATH, '//button[@class="click-me"]'))) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值