Selenium常用函数(浏览器导航,文件上传,浏览器参数设置)

浏览器导航

这部分是Selenium中最基础的页面操作,用于控制浏览器的前进、后退、刷新等行为。

|--------|--------------------------------|--------------------|
| 操作 | 代码 | 说明 |
| 打开网站 | driver.get("https://tool.lu/") | 加载指定URL,等待页面完全加载完成 |
| 后退 | driver.back() | 回到浏览器历史记录的上一页 |
| 前进 | driver.forward() | 前进到浏览器历史记录的下一页 |
| 刷新 | driver.refresh() | 重新加载当前页面 |

注意: get()会等待页面加载完成后才执行后续代码;back()/forward()/refresh() 也会触发页面加载,实际项目中建议配合显式等待使用。


文件上传

核心原理

  • 常规文件上传会弹出系统窗口,Selenium无法直接识别和操作系统控件。
  • 但对于<input type="file" /> 类型的上传元素,可以直接通过send_keys() 传入文件绝对路径来实现上传,绕过系统窗口。

示例代码

复制代码
# 打开包含上传控件的页面
driver.get("file:///D:/file/selenium4html/selenium-html/upload.html")
# 定位文件上传input元素
ele = driver.find_element(By.CSS_SELECTOR, "body > div > div > input[type=file]")
# 传入文件绝对路径,完成上传
ele.send_keys("D:\\file\\test.txt")

关键要点

  • 必须定位到页面中的<input type="file" /> 元素,不能定位外层按钮。
  • 路径需使用绝对路径 ,Windows系统中路径分隔符可使用双反斜杠 \\ 或正斜杠 /

浏览器参数设置

1) 无头模式(Headless)

让浏览器在后台运行,不显示GUI界面,适合CI/CD服务器或自动化测试环境。

示例代码
复制代码
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
# 开启无头模式
options.add_argument("--headless=new")  # 新版Chrome推荐写法
driver = webdriver.Chrome(
    service=ChromeService(ChromeDriverManager().install()),
    options=options
)

2) 页面加载策略

控制Selenium等待页面加载完成的时机,优化测试执行速度。

|------------|----------------------------------|--------------------|
| 策略 | 说明 | 适用场景 |
| (默认)normal | 等待所有资源(图片、CSS、JS)下载完成后,才认为页面加载完成 | 大多数常规场景 |
| eager | 等待DOM加载完成,但不等待图片等其他资源 | 页面资源加载慢、不影响核心交互的场景 |
| none | 不等待页面加载,立即执行后续代码 | 配合显式等待手动控制所有加载流程 |

示例代码(以eager为例)
复制代码
options = webdriver.ChromeOptions()
options.page_load_strategy = "eager"
driver = webdriver.Chrome(
    service=ChromeService(ChromeDriverManager().install()),
    options=options
)

注意:使用eager或none时,必须配合显式等待,否则可能出现元素未加载完成就执行操作的问题。

相关推荐
霍格沃兹测试学院-小舟畅学11 小时前
UI 测试的语义断言:Midscene aiAssert 比像素比对稳在哪、又会骗在哪
人工智能·测试工具
zuozewei12 小时前
附录 A:主流工具对比选型表
人工智能·测试工具
我的xiaodoujiao13 小时前
Django 基础知识详细图文教程 10-Django 模板引擎 3
后端·python·测试工具·django
霍格沃兹测试学院-小舟畅学15 小时前
Google 开源 ARTEMIS:AI Agent 如何接管 Android 真机测试?
人工智能·测试工具
Liaiyang6615 小时前
# 自研 AST 容错初筛工具:横向评测 Django、PyTorch、TensorFlow 三大开源 Python 框架异常收容风险
python·测试工具·自动化·开源软件·代码规范·devops·代码复审
霍格沃兹测试学院-小舟畅学17 小时前
我用 AI 把 Swagger 变成 500 条 pytest 用例,回归从 3 天到 3 小时
人工智能·测试工具
奔跑中的小象2 天前
GuideLLM 压测实战指南:给大模型推理服务做一次完整 SLA 评估
测试工具·guidellm
cpolar技术支持2 天前
本地 Playwright 测试报告怎么远程复盘?Trace Viewer 跑起来后,用 cpolar 分享失败现场
前端·自动化测试·测试工具·cpolar·playwright
测试狗科研平台2 天前
材料热传导能力表征——热导率计算方法与流程解析
科技·测试工具·材料工程