您现在的位置是:网站首页 > 博客日记 >

selenium的3种等待设置

作者:YXN-python 阅读量:120 发布日期:2023-11-22

在selenium中,常用的等待方式有以下三种:

等待 代码 优点 缺点
强制等待 time.sleep() 适用于简单的测试场景,且易于理解和实现 不太智能化,测试执行时间不稳定
隐式等待 implicitly_wait() 减少代码的复杂性 需要页面全部加载完成,可能会导致测试执行时间变长
显式等待 WebDriverWait() 灵活,确保在需要等待的情况下,测试不会过早地失败 代码中明确指定等待条件和超时时间,可能会增加代码的复杂性和维护成本

代码示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import time

# 创建一个Chrome浏览器实例
driver = webdriver.Chrome()
# 浏览器窗口最大化
driver.maximize_window()
# 打开百度首页,这里随机举例
driver.get('https://www.baidu.com/')

# 强制等待5秒
time.sleep(5)
# 隐式等待5秒
driver.implicitly_wait(5)
# 使用显示等待,等待百度地图按钮出现在页面上
elm1 = WebDriverWait(driver, 10).until(lambda x: x.find_element(By.XPATH, '//*[@id="s-top-left"]/a[3]'))

# 定位到百度地图按钮
elm2 = driver.find_element(By.XPATH, '//*[@id="s-top-left"]/a[3]')

# 使用 get_attribute 方法获取超链接的 href 属性值
href1 = elm1.get_attribute('href')
href2 = elm2.get_attribute('href')
print(href1, href2)

# 退出浏览器
driver.quit()

YXN-python

2023-11-22