浏览器配置 + 文件上传 + 截图

Selenium 进阶内容:浏览器配置 + 文件上传 + 截图

一、浏览器配置(EdgeOptions)

作用:自定义浏览器启动参数,常用场景:无头运行(无界面跑脚本,服务器执行)、禁止弹窗、忽略证书报错、禁用GPU、设置窗口大小等。

导入

python 复制代码
from selenium.webdriver.edge.options import Options

常用参数说明

参数 作用
--headless=new 无头模式:不弹出浏览器窗口,后台运行
--disable-gpu 禁用GPU渲染(部分windows环境无头必备)
--ignore-certificate-errors 忽略https证书报错
--start-maximized 启动直接最大化窗口
--disable-notifications 禁止网页弹窗通知

完整示例(无头模式)

python 复制代码
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options

# 实例配置对象
edge_options = Options()
# 开启无头模式
edge_options.add_argument("--headless=new")
edge_options.add_argument("--disable-gpu")
edge_options.add_argument("--ignore-certificate-errors")

web_driver = webdriver.Edge(
    service=Service(r"D:\Software\edgedriver_win64\msedgedriver.exe"),
    options=edge_options
)
web_driver.get("https://www.baidu.com")
print(web_driver.title)
web_driver.quit()

⚠️ 重点:本地调试不要开无头;服务器部署自动化脚本使用无头

二、文件上传

场景区分

  1. input标签 type="file" ✅ Selenium原生支持(最常见)
    原理:定位上传输入框,直接 send_keys(文件绝对路径),不需要模拟点击弹窗选文件!
  2. 非input、自定义上传弹窗(Windows资源管理器弹窗)❌ selenium无法处理,需要第三方库如pyautogui

标准示例

python 复制代码
# 定位上传输入框
upload_ele = wait.until(EC.visibility_of_element_located((By.XPATH, '//input[@type="file"]')))
# 传入本地文件【绝对路径】
upload_ele.send_keys(r"D:\test.jpg")

三、截图操作

两种截图方式

  1. 截取整个浏览器页面driver.save_screenshot("图片保存路径.png")
  2. 截取单个元素element.screenshot("图片路径.png")
python 复制代码
# 页面截图
web_driver.save_screenshot(r"D:\page.png")

# 元素截图
search_input = wait.until(EC.visibility_of_element_located((By.ID, "kw")))
search_input.screenshot(r"D:\input.png")

注意:路径尽量使用原始字符串 r"";保存目录必须存在,否则报错


✅ 综合课堂练习

需求:

  1. 配置Edge,忽略证书报错,启动自动最大化
  2. 打开百度首页
  3. 页面截图保存到本地
  4. 在搜索框输入 自动化测试
  5. 点击搜索
  6. 关闭浏览器
相关推荐
广州山泉婚姻5 小时前
Python序列号源码分析
python
计算机源码社6 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
C^h6 小时前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
小柯南敲键盘6 小时前
跨马翻译:AI批量图片翻译工具,跨境电商视频字幕翻译与智能抠图一体搞定
人工智能·python·音视频
2601_962297256 小时前
Python里behave和pytest-bdd哪个更适合中大型项目?为什么?
python·bdd·行为驱动开发·behave·pytest-bdd
YCOSA20258 小时前
系统工具使用检测.exe (仅供娱乐)
python·microsoft
2601_962295339 小时前
如何python实现网页的自动化
python·selenium·beautifulsoup·requests·网页自动化
ofoxcoding9 小时前
GPT Image 2.5 API 实战:Python 调用实现图片生成与编辑
人工智能·python·gpt·ai
张小姐的猫9 小时前
【AI大模型接入SDK】 —— Gemini接入封装
android·数据结构·数据库·c++·人工智能·python
Elastic 中国社区官方博客10 小时前
Elasticsearch Python DSL 客户端开发
大数据·数据库·python·elasticsearch·搜索引擎·全文检索