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
相关产品推荐
相关产品推荐

