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

如何通过Selenium实现多文件上传?已掌握单文件sendKeys上传

解决Selenium多文件一次性上传的问题

嘿,我完全懂你这种“单文件顺风顺水,多文件突然卡壳”的感觉!其实多文件上传的核心逻辑和单文件差不多,只是需要调整下传入的内容——把多个文件的绝对路径用系统对应的分隔符拼接起来就行,不用搞复杂的操作。

核心原理

Selenium的sendKeys方法支持传入多个文件路径,只要用系统规定的分隔符把它们连起来:

  • Windows系统用**分号;**分隔
  • Mac/Linux系统用**冒号:**分隔

具体代码示例

下面给你两种常用语言的实现,你可以直接对应自己的技术栈:

Python版本

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

driver = webdriver.Chrome()
driver.get("你的应用上传页面地址")

# 替换成你的图片文件夹绝对路径
image_folder = "/Users/xxx/Documents/images"

# 自动遍历文件夹里的所有图片(支持jpg/png,可按需修改后缀)
image_paths = glob.glob(os.path.join(image_folder, "*.jpg")) + glob.glob(os.path.join(image_folder, "*.png"))

# 根据系统自动选择分隔符
separator = ";" if os.name == "nt" else ":"
# 拼接所有文件路径
combined_paths = separator.join(image_paths)

# 定位文件输入框(必须是<input type="file">类型)
file_input = driver.find_element(By.XPATH, "//input[@type='file']")
# 传入拼接好的路径
file_input.send_keys(combined_paths)

Java版本

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MultiImageUpload {
    public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();
        driver.get("你的应用上传页面地址");

        // 替换成你的图片文件夹绝对路径
        String imageFolder = "C:\\Users\\xxx\\Documents\\images";
        
        // 列出所有要上传的图片路径
        String img1 = imageFolder + "\\img1.jpg";
        String img2 = imageFolder + "\\img2.png";
        String img3 = imageFolder + "\\img3.jpg";
        String img4 = imageFolder + "\\img4.png";

        // 根据系统选择分隔符
        String separator = System.getProperty("os.name").contains("Windows") ? ";" : ":";
        String combinedPaths = img1 + separator + img2 + separator + img3 + separator + img4;

        // 定位文件输入框并上传
        driver.findElement(By.xpath("//input[@type='file']")).sendKeys(combinedPaths);
    }
}

几个关键注意点

  • 必须确保你定位的元素是<input type="file">,只有这种原生文件上传控件才能接收sendKeys传入的路径
  • 一定要用绝对路径,相对路径容易因为工作目录问题导致找不到文件
  • 如果你的图片文件名不确定,用代码遍历文件夹的方式会更灵活(比如Python的glob、Java的File.listFiles)

内容的提问来源于stack exchange,提问作者Pr Sirisha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:37:42