当前位置: 首页 > news >正文

Selenium文件上传

在 Web 自动化测试中,文件上传是一项常见的任务。不同的网站和前端技术可能导致上传方式有所不同,因此需要采用不同的方法进行处理。


方法 1:使用 send_keys() 直接上传(最常用)

适用场景

  • 页面中 有标准的 <input type="file"> 标签

  • 不需要弹出 Windows 文件选择对话框,直接选中文件即可上传。

from selenium import webdriver
from selenium.webdriver.common.by import By

# 启动 WebDriver
driver = webdriver.Chrome()
driver.get("http://127.0.0.1:9580/index.html")  # 替换为你的论坛系统地址

# 定位文件上传按钮(input[type='file'])
file_input = driver.find_element(By.NAME, "file")  # 这里的 name 需要替换为实际 HTML 代码中的 name 值
file_input.send_keys("C:\\Users\\你的用户名\\Desktop\\test.jpg")  # 直接输入文件路径

# 提交文件(如果有独立的提交按钮)
driver.find_element(By.ID, "upload_button").click()

# 关闭浏览器
driver.quit()

优点

  • 简单易用,Selenium 原生支持
  • 适用于大多数 Web 应用,不需要额外工具
  • 跨平台(Windows / macOS / Linux)

缺点

  • 仅适用于有 <input type="file"> 元素的网页
  • 无法处理需要手动点击文件上传窗口的情况<
http://www.dtcms.com/a/98133.html

相关文章:

  • 使用 Avada 主题创建动态内容展示的技术指南
  • 尚硅谷面向对象篇笔记记录
  • 密文搜索 | 第六届蓝桥杯国赛C++B组
  • GMP调度模型
  • GAMMA数据处理(十)
  • RabbitMQ高级特性--发送方确认
  • AIOHTTP
  • 2025年3月电子学会c++五级真题
  • GOF23种设计模式
  • 树莓派5智能家居中控:HomeAssistant全配置指南
  • 笔记:基于环境语义的通感融合技术,将传统通信由“被动接收”转为“主动感知”
  • synchronized锁与lock锁的区别
  • 实变函数:集合与子集合一例(20250329)
  • JavaFX基础- Button 的基本使用
  • Linux进程管理之子进程的创建(fork函数)、子进程与线程的区别、fork函数的简单使用例子、子进程的典型应用场景
  • 【19期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深A股实时交易数据及接口API说明文档
  • 参加李继刚线下活动启发:未来提示词还会存在吗?
  • 【初阶数据结构】线性表之双链表
  • 【数电】半导体存储电路
  • 基于Linux平台安装部署Redis全教程
  • 生物化学笔记:医学免疫学原理09 白细胞分化抗原+黏附分子
  • Supplements of My Research Proposal: My Perspectives on the RAG
  • 数据结构:探秘AVL树
  • 【华为OD技术面试真题 - 技术面】- Java面试题(15)
  • Android开发中的数据结构与算法:排序算法
  • TCP协议与wireshark抓包分析
  • 如何封装一个上传文件组件
  • 小河:团队金牌精准计划
  • QML中使用Image显示图片和使用QQuickItem显示图片
  • 告别桌面杂乱与充电焦虑,移速165W百变桌面充电站首发体验