You need to enable JavaScript to run this app. Robot Framework自动化测试中如何校验文件已成功下载?
优惠活动
大模型
产品
解决方案
定价
更多

Robot Framework自动化测试中如何校验文件已成功下载?

Robot Framework 校验Chrome/Firefox下载文件方案

1. 前置浏览器配置:指定固定下载路径

首先需要禁用浏览器下载弹窗,指定统一的固定下载目录,避免默认路径随机导致无法定位文件,两种浏览器配置示例如下:

  • Chrome 配置
    使用SeleniumLibrary启动时添加启动参数即可:
*** Settings ***
Library    SeleniumLibrary

*** Variables ***
# 指定测试项目根目录下的downloads文件夹为下载目录,可自行修改
${DOWNLOAD_DIR}    ${EXECDIR}/downloads
${CHROME_OPTIONS}    add_experimental_option("prefs", {"download.default_directory": r"${DOWNLOAD_DIR}", "download.prompt_for_download": False, "download.directory_upgrade": True, "safebrowsing.enabled": False})

*** Test Cases ***
启动带下载配置的Chrome
    Open Browser    about:blank    Chrome    options=${CHROME_OPTIONS}
  • Firefox 配置
    修改火狐浏览器偏好设置实现:
*** Variables ***
# 注意:browser.helperApps.neverAsk.saveToDisk后的MIME类型需根据你要下载的文件类型调整,以下是通用的几种类型示例
${FF_PROFILE}    set_preference("browser.download.folderList", 2)    set_preference("browser.download.manager.showWhenStarting", False)    set_preference("browser.download.dir", r"${DOWNLOAD_DIR}")    set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,application/pdf,text/csv,application/zip,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")

*** Test Cases ***
启动带下载配置的Firefox
    Open Browser    about:blank    Firefox    ff_profile=${FF_PROFILE}

2. 下载前清理历史文件

导入自带的OperatingSystem库,下载前删除目标路径下的同名文件,避免历史文件干扰校验结果:

*** Settings ***
Library    OperatingSystem

*** Test Cases ***
清理历史下载文件
    # ignore_errors=True表示如果文件不存在也不会报错,可自行选择是否添加
    Remove File    ${DOWNLOAD_DIR}/目标下载文件名.csv    ignore_errors=True

3. 触发下载后校验文件状态

点击下载按钮后,轮询等待文件生成,还可根据需要校验文件大小、内容是否符合预期:

*** Test Cases ***
下载并校验文件
    # 前面为你的网页操作步骤,执行到点击下载按钮
    Click Element    id:download_button
    # 最多等待30秒,每2秒检查一次文件是否存在,可根据文件大小调整超时时间
    Wait Until Keyword Succeeds    30s    2s    File Should Exist    ${DOWNLOAD_DIR}/目标下载文件名.csv
    # 可选校验:判断文件不是空文件,阈值可根据实际文件大小调整
    ${file_size}    Get File Size    ${DOWNLOAD_DIR}/目标下载文件名.csv
    Should Be True    ${file_size} > 1024
    # 可选校验:校验文件内容包含预期关键字
    ${content}    Get File    ${DOWNLOAD_DIR}/目标下载文件名.csv    encoding=utf-8
    Should Contain    ${content}    预期匹配的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 20:15:08