简介
在自动化测试中,页面元素可能需要一些时间才能加载或完成某种操作,为了确保测试的稳定性,我们需要等待特定条件变为真。Selenium 提供了一个 Expected Conditions
模块,用于智能等待页面元素的出现、可见、可点击等条件。本文将详细介绍如何使用 Selenium 的 Expected Conditions
模块,并提供示例代码。
什么是 Expected Conditions?
Expected Conditions
是 Selenium 的一个子模块,它包含一组内置条件,可以用于等待页面元素达到特定状态,例如元素可见、可点击、存在等。使用 Expected Conditions
可以在不显式使用 time.sleep() 的情况下,根据需要智能等待页面元素的加载或状态改变。
使用 Expected Conditions 示例
以下是如何使用 Selenium 的 Expected Conditions 模块的示例:
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.Chrome()
# 打开网页
url = "https://example.com"
driver.get(url)
# 创建一个 WebDriverWait 对象,设置最大等待时间为 10 秒
wait = WebDriverWait(driver, 10)
# 等待元素可见
element = wait.until(EC.visibility_of_element_located((By.ID, "myElementID")))
# 执行操作
element.click()
# 关闭浏览器
driver.quit()
在上述示例中,我们首先启动了 Chrome 浏览器,并打开了一个网页。接着,我们创建了一个 WebDriverWait
对象,它会等待最多 10 秒,直到指定的条件成立。然后,我们使用 EC.visibility_of_element_located
来等待具有指定 ID 的元素可见。一旦元素变为可见,我们执行相应的操作。
常用的 Expected Conditions 条件
EC.presence_of_element_located(locator)
: 等待元素出现在页面中。EC.visibility_of_element_located(locator)
: 等待元素变得可见。EC.element_to_be_clickable(locator)
: 等待元素变得可点击。EC.text_to_be_present_in_element(locator, text)
: 等待指定文本出现在元素中。EC.title_is(title)
: 等待页面标题与给定标题相等。
总结
使用 Selenium 的 Expected Conditions 模块可以帮助我们实现智能等待页面元素的加载和状态变化,从而提高自动化测试的稳定性和可靠性。在测试脚本中合理使用这些条件,加强我们测试用例的健壮性。
标签:等待,元素,Selenium,EC,element,Expected,Conditions,软件测试 From: https://blog.51cto.com/u_15640304/8245827