当使用Python的Selenium库进行浏览器自动化测试时,显示等待(Explicit Waits)是非常有用的。下面是几种常见的Python Selenium显示等待的写法示例:
- 使用
WebDriverWait
和ExpectedConditions
:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 创建WebDriverWait对象,并指定最大等待时间
wait = WebDriverWait(driver, 10)
# 等待元素可见
element = wait.until(EC.visibility_of_element_located((By.ID, 'element-id')))
# 等待元素存在
element = wait.until(EC.presence_of_element_located((By.XPATH, 'xpath-expression')))
# 等待元素可点击
element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'css-selector')))
- 使用
expected_conditions
模块提供的内置条件:
from selenium.webdriver.support import expected_conditions as EC
# 等待元素文本包含指定内容
element = wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR, 'css-selector'), 'expected-text'))
# 等待元素不可见
element = wait.until_not(EC.visibility_of_element_located((By.XPATH, 'xpath-expression')))
- 使用
@appium_lib.utils.wait
装饰器:
from appium_lib.utils import wait
# 使用装饰器包装需要等待的函数
@wait(driver=driver, timeout=10)
def wait_for_element():
return driver.find_element_by_id('element-id')
# 调用等待函数,会等待元素可见
element = wait_for_element()
这些示例展示了一些常见的Python Selenium显示等待写法。你可以根据具体的测试需求选择适合的等待条件和方法。希望对你有帮助!如有任何问题,请随时提问。