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

Promise To Upload File 如何实现目录下全部文件批量上传

解决方案

你可以调用OperatingSystem库的List Files In Directory关键字遍历目标目录下的所有文件,再根据你的上传需求调整代码即可:


情况1:一次选中所有文件批量上传

Browser库的Promise To Upload File支持传入多个文件路径,路径之间用换行符\n分隔即可实现一次选中多文件上传,修改后代码如下:

*** Settings ***
Library    Browser
Library    OTP
Library    BuiltIn
Library    OperatingSystem

*** Test Cases ***
Upload All Files At Once
    # 先获取Files目录下所有文件的绝对路径
    ${files_dir}=    Join Path    ${CURDIR}    Files
    ${all_files}=    List Files In Directory    ${files_dir}    absolute=True
    # 把路径列表拼接成换行符分隔的字符串
    ${upload_paths}=    Catenate    SEPARATOR=\n    @{all_files}
    # 传入多文件路径触发上传
    ${promise}=    Promise To Upload File    ${upload_paths}
    Click          ${Button-Upload}
    ${upload_result}=  Wait For  ${promise}

情况2:逐个遍历文件循环上传

如果你的上传控件仅支持单次选择1个文件,就用FOR循环逐个上传:

*** Settings ***
Library    Browser
Library    OTP
Library    BuiltIn
Library    OperatingSystem

*** Test Cases ***
Upload Files One By One
    ${files_dir}=    Join Path    ${CURDIR}    Files
    ${all_files}=    List Files In Directory    ${files_dir}    absolute=True
    # 循环遍历每个文件逐个上传
    FOR    ${file_path}    IN    @{all_files}
        ${promise}=    Promise To Upload File    ${file_path}
        Click          ${Button-Upload}
        ${upload_result}=  Wait For  ${promise}
        # 若上传后页面需要重置,可在此处补充等待或页面复位逻辑
        Sleep    1s
    END

补充说明

  • 如果不需要上传目录下的子文件夹,可给List Files In Directory添加参数pattern=*.txt(按实际文件后缀调整),仅过滤匹配规则的文件
  • 批量上传前可先手动验证上传控件是否支持多文件选择,避免路径拼接后上传失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:24:01