You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Selenium选中指定目录下的所有文件进行上传

Selenium 批量上传本地文件实现方案

实现原理

Selenium 针对<input type="file">类型的上传控件,若控件自带multiple属性(支持多文件选择),可以通过send_keys传入用换行符拼接的所有文件绝对路径实现一次性批量上传。你现有代码的问题是在循环中单次传入单个文件,会覆盖上一次传入的路径,最终只能上传最后一个遍历到的文件。

修正后可运行代码

import os
import glob
# 若使用selenium 4.x 版本,需要导入By类用于元素定位
from selenium.webdriver.common.by import By

target_dir = r"C:\Users\adam\OneDrive - Wheelers Lane Technology College\Pictures\ama"
# 收集目录下所有jpg文件的绝对路径
jpg_file_list = [os.path.abspath(file) for file in glob.glob(os.path.join(target_dir, "*.jpg"))]

# 打印所有待上传文件路径校验
for path in jpg_file_list:
    print(path)

# 用换行符拼接所有路径,一次性传入上传控件
upload_input = driver.find_element(By.XPATH, '//*[@id="upl-fileInp"]')
# selenium 3.x 版本可替换为下面的定位写法
# upload_input = driver.find_element_by_xpath('//*[@id="upl-fileInp"]')
upload_input.send_keys('\n'.join(jpg_file_list))

注意事项

  • 操作前先确认页面上传控件的<input>标签存在multiple属性,否则不支持多文件同时上传,只能循环触发上传流程逐个提交
  • 必须传入文件的绝对路径,Selenium无法识别相对路径定位本地文件
  • 若文件路径含特殊字符、中文,建议提前做转义处理避免识别失败

内容的提问来源于stack exchange,提问作者Adam Khattab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:39:02