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时,必须配合显式等待,否则可能出现元素未加载完成就执行操作的问题。

相关推荐
ClouGence14 小时前
Selenium、Playwright、CueCast 深度对比:Web 自动化测试工具怎么选
selenium·测试
程序员小远16 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
LT101579744416 天前
2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
前端·测试工具·自动化
程序员三藏16 天前
Web自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
深蓝电商API17 天前
Selenium 5.0 全新架构解析:值得升级吗?
爬虫·selenium
专业机床数据采集17 天前
基于 Wireshark 抓包逆向设备通信协议,并用 C# UDP协议跨平台 实现宝元数控程序列表读取、上传、下载和删除
网络·测试工具·wireshark·程序传输·宝元数控·dnc·数控程序传输
程序员龙叔17 天前
从 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
自动化测试·软件测试·python·软件测试工程师·测试工具·性能测试·ai测试
Saniffer_SH17 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
川石课堂软件测试17 天前
APP自动化测试|高级手势操作&toast操作
css·功能测试·测试工具·microsoft·fiddler·单元测试·harmonyos