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

Robot Framework切换目录用什么关键字?如何重命名下载的CSV文件?

报错根因

Move File关键字默认基于当前执行目录(也就是你的.robot脚本所在目录)解析相对路径,你没有给oldfilename指定完整路径,所以框架会默认去脚本目录找该文件,自然找不到你存在${DIR}下的下载文件。


两种直接解决方法

1. (优先推荐)直接拼接完整路径,无需切换工作目录

你已经预定义了下载目录变量${DIR},直接给两个文件名都补全路径即可:

Move File  ${DIR}\\old_default_filename.csv  ${DIR}\\new_custom_filename.csv

该方法不会修改全局工作目录,不会影响后续其他相对路径操作,稳定性更高。

2. 切换工作目录后操作

如果需要临时切换当前工作目录到下载路径,可以调用OperatingSystem库的Set Working Directory关键字,后续的相对路径操作都会基于该目录执行:

Set Working Directory  ${DIR}
Move File  old_default_filename.csv  new_custom_filename.csv

更优实现方案

你的现有代码里有两个可以优化的点,能大幅降低执行失败概率:

  1. 硬等5s不可靠:如果网络慢、导出数据量大,下载耗时超过5s就会报错,建议用Wait Until Created关键字等待文件生成
  2. 导出文件名动态:很多系统导出的文件名会带时间戳、随机后缀,没法提前知道准确的原文件名,可以先列出下载目录下所有.csv文件,取最新生成的那个作为原文件

优化后的完整代码如下:

*** Settings ***
Library  SeleniumLibrary
Library  OperatingSystem
Library  Collections

*** Variables ***
${DIR}                 C:\\Users\\xxxxx\\Reports
${DOWNLOAD_TIMEOUT}    30s

*** Test Cases ***
Sample exporting of csv file
    Empty Directory  ${DIR}
    ${prefs} =    Create Dictionary    download.default_directory=${DIR}
    Open Browser  https://xxxxxxxxxxxxxxxxx.com  headlesschrome  executable_path=${BROWSERDRI}  options=add_experimental_option("prefs",${prefs})
    Input Text  //*[@id="name"]  xxxxx
    Input Password  //*[@id="password"]  xxxxx
    Click Button  //*[@id="button_primary"]
    Click Element  //*[@id="content-header"]/div/span[3]/a/div
    Click Element  //*[@id="exportDropdown"]/ul/li[3]/a
    Click Link  //*[@id="exportCsvColumns_control"]/div/div[1]/div/a[2]
    Click Button  //*[@id="exportSubmit"]
    # 等待目录下生成.csv文件,替代硬等待
    Wait Until Created  ${DIR}\\*.csv  timeout=${DOWNLOAD_TIMEOUT}
    # 获取目录下所有csv文件,取最新的一个
    ${all_csv_files}=  List Files In Directory  ${DIR}  *.csv  absolute=True
    ${latest_file}=  Get From List  ${all_csv_files}  0
    # 重命名文件
    Move File  ${latest_file}  ${DIR}\\自定义的新文件名.csv
    Close Browser

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:09:01