跳转到内容

上传文件

上传文件 用于在浏览器 RPA 中从对象存储拉取文件,并上传到类型为 file 的输入框(或支持拖放上传的区域),支持智能上传策略与多文件批量上传,常用于文档、图片等上传的自动化场景。

指令标识:UploadFileFromS3
指令类型:网页指令
指令描述:从对象存储拉取文件并上传到类型为 file 的输入框中,支持多种上传策略

工作流支持「可视化编排」和「代码编排」两种创建方式。上传文件 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。

方式怎么用适合人群
可视化编排(推荐先学)拖入「上传文件」节点,在右侧表单选择上传控件并填写文件存储路径大多数用户,零代码,适合快速搭建和调试
代码编排(Python)在脚本中调用 bots.uploadFileFromS3(selector="...", s3Paths="...")熟悉代码、需要复用脚本或批量生成流程的用户

第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。

  • 在网页表单中模拟用户上传文件。
  • 一次性批量上传多个文件到支持多选的上传控件。
  • 在自动化测试中验证文件上传功能。

上传完成后,常接 验证元素存在延迟 确认上传结果。

  • 文件已存放在对象存储,并拿到完整、可下载的访问路径。
  • 上传控件可定位,通常指向 input[type='file'] 元素。
  • 多文件上传时,目标控件支持多选,路径用英文逗号分隔。
  • 该指令属于元素定位类,默认失败即中止(报错中止):找不到上传控件会抛出异常。
  • 上传超时通过「文件上传配置」inputFilesOptions 设置;元素定位超时通过「查找元素高级配置」findElementOptions 设置。
  • 若上传控件在 iframe 中,需填写 iframe 页面定位器。
上传文件

下面用一个常见场景演示:在文件上传页面上传一张图片。按 4 步即可跑起来:

  1. 在前序流程中通过 打开网页 打开上传页面。
  2. 添加 上传文件 节点,在 文件选择元素选择器 中选择或填写上传控件:
//input[@type='file']
  1. 文件S3路径 填写完整的文件存储路径,例如 https://example.com/assets/files/test-file.png
  2. 点击运行,确认文件已上传到目标控件,再接验证或后续提交。
界面名称代码属性名类型必填默认值说明
文件选择元素选择器selectorString-用于选择上传控件的元素选择器,不能为空,通常指向 input[type='file'],支持从元素库选择或手动填写 XPath 等定位器
文件S3路径s3PathsString-待上传文件的存储路径,支持多个文件用英文逗号分隔,不能为空
文件上传配置inputFilesOptionsJSON-高级选项。文件上传的高级配置,包含上传方式、上传超时(timeout,单位毫秒)等,例如 {"timeout":30000}
iframe页面定位器frameSelectorString-高级选项。iframe 的 XPath,目标元素在 iframe 中时填写,例如 //html/iframe
查找元素高级配置findElementOptionsJSON-高级选项。元素查找配置,可设置元素定位超时,例如 {"timeout":5000},单位毫秒

无。

  • 运行成功,文件被上传到目标控件。
  • 上传控件显示已选择对应文件(或文件名),后续提交可正常进行。
  • 运行日志中没有下载失败、找不到元素或上传超时错误。

运行后你会看到(以上面场景为例):

  • 上传控件显示已选择 test-file.png,可继续提交表单完成上传。
现象 / 报错原文可能原因处理建议
找不到上传控件选择器有误或元素未加载核对选择器,在 findElementOptions 中增大 timeout
文件下载失败文件路径错误或不可访问确认 s3Paths 为完整、可下载的路径
上传超时文件较大或网络较慢inputFilesOptionstimeout 中增大上传超时
多文件只上传了部分控件不支持多选或分隔符不对确认控件支持多选,多个路径用英文逗号分隔
iframe 内控件找不到未填写 iframe 定位器在「iframe页面定位器」填写对应 XPath

代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。

# 先打开上传页面
bots.openUrl(url="https://example.com/upload")
# 上传文件到目标控件
bots.uploadFileFromS3(
selector="//input[@type='file']",
s3Paths="https://example.com/assets/files/test-file.png",
)

如需自定义上传超时和元素定位超时:

bots.uploadFileFromS3(
selector="//input[@type='file']",
s3Paths="https://example.com/assets/files/test-file.png",
inputFilesOptions='{"timeout":30000}',
findElementOptions='{"timeout":5000}',
)

可视化表单里的「文件选择元素选择器」「文件S3路径」「文件上传配置」「查找元素高级配置」分别对应代码里的 selectors3PathsinputFilesOptionsfindElementOptions

如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。

A: 必须是完整的 URL,含协议和完整路径,例如 https://example.com/assets/files/file.png,且具有下载权限。

A: 用英文逗号分隔多个路径,例如 https://example.com/assets/a.jpg,https://example.com/assets/b.pdf,并确保控件支持多选。

A: 根据文件大小调整:小文件(约 10MB)可设 30 秒,大文件(约 100MB)建议 5 分钟或更长,批量上传应增大超时。

Q4:上传控件在 iframe 中怎么办?

Section titled “Q4:上传控件在 iframe 中怎么办?”

A: 使用「iframe页面定位器」指定 iframe 的 XPath,例如 //iframe[@id='upload-frame']