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