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

