欢迎访问宙启技术站
智能推送

selenium.webdriver.support.wait模块的使用技巧与示例分享(python)

发布时间:2023-12-25 08:35:04

selenium.webdriver.support.wait 模块是 Selenium 提供的一个等待模块,它可以让我们在自动化测试过程中设置一定的等待时间,以确保页面加载完成或元素可见等条件满足后再进行下一步操作。

wait 模块主要包含两个类:WebDriverWait 和 expected_conditions。

WebDriverWait 是等待的主要类,它可以接受一个 WebDriver 实例和最长等待时间作为参数。我们可以使用它的 until() 方法来设置具体的等待条件,直到条件满足或超时为止。

expected_conditions 是包含了一系列等待条件的类。我们可以使用 expected_conditions 的方法来设置不同的条件,并在 WebDriverWait 中使用这些条件进行等待。

下面是一个使用 selenium.webdriver.support.wait 模块的示例:

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

# 创建一个 WebDriver 实例
driver = webdriver.Chrome()

# 打开一个网页
driver.get("https://www.baidu.com")

# 设置一个最长等待时间为 10 秒
wait = WebDriverWait(driver, 10)

# 等待直到页面标题包含指定的关键字
wait.until(EC.title_contains("百度"))

# 查找百度搜索输入框,并输入关键字
search_box = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#kw")))
search_box.send_keys("Selenium")

# 等待直到百度搜索按钮可点击
search_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#su")))

# 点击搜索按钮
search_button.click()

# 关闭浏览器
driver.quit()

在上面的示例中,我们首先创建了一个 WebDriver 实例,并打开了百度的首页。然后,我们通过 WebDriverWait 和 expected_conditions 设置了几个等待条件,分别是等待页面标题包含指定关键字、等待百度搜索输入框可见、等待百度搜索按钮可点击。最后,我们在满足这些条件后进行了相应的操作,比如输入关键字、点击搜索按钮。最后,我们关闭了浏览器。

这里需要额外注意的是,WebDriverWait 和 expected_conditions 两个类的具体用法和等待条件方法的使用可以根据实际情况进行灵活运用。这只是一个示例,你可以根据自己的需求和具体情况进行相应的设置和调整。

总结起来,selenium.webdriver.support.wait 模块为我们提供了在自动化测试中设置等待的功能,帮助我们应对页面加载慢或元素不可见等情况。通过合理使用这些等待条件,我们可以更好地控制测试的顺序和步骤,提高测试的稳定性和准确性。