excel - 机器人框架和 Excel : Constructing full path to Excel-file of different parts of the path (Open Pyxl Library)

标签 excel concatenation robotframework

我正在尝试测试一个简短的机器人框架代码,以询问用户 Excel 文件的名称作为机器人框架的对话框库提供的弹出窗口。
这个想法是文件路径的基础(与 Excel 文件所在的文件夹保持相同)被硬编码为一个名为 ${EXCEL BASE PATH} 的变量。然后用户将 Excel 文件的名称提供给弹出窗口(因为文件的名称会在不同的文件之间更改)并且更改的部分路径将存储到 ${EXCEL NAME}第三部分将是硬编码的文件扩展名 .xlsx 存储到 ${EXCEL FILE EXTENSION}因为只会打开扩展名为 .xlsx 的文件,并且文件扩展名没有任何更改。

用于 Excel 处理的库是 OpenPyxlLibrary,因为它支持 xlsx。 ExcelLibrary 仅支持 xls。

我已经接近工作了,但问题是当连接上面写的这三个部分的完整路径时,结果与我正在寻找的结果不同。

要打开的 Excel 文件的完整路径的预期结果是:
C:\\Users\\developer\\Robot Framework\\Excel\\TestExcel.xlsx
但是现在登录到控制台时,它是:
C:\Users\developer\Robot Framework\Excel\ TestExcel .xlsx
因此缺少第二个反斜杠(Open Pyxl Library 需要路径)以及 .xlsx 之前的备用空间

除了使用此处测试的 Catenate-keyword 之外,还有其他方法可以构建 Open Pyxl Library 所使用的不同部分的路径吗?如果完整的 Excel 路径被硬编码为单个变量,而不是已经工作得很好,但后来的问题是需要更改
当 Excel 文件将被更改时该变量的值,这就是为什么我试图测试一个解决方案,让用户给出要打开的 Excel 文件的名称。因为文件名是从文件到文件的变化部分,其他部分保持不变。

Excel 文件实际上尚未在此简化代码中打开,我首先尝试仅记录 Excel 文件的完整路径以查看该记录是否正确。当路径正确时,我可以添加代码以实际打开 Excel 文件。

CommonResources.robot 文件(资源文件):

*** Settings ***
Library           String
Library           BuiltIn
Library           OpenPyxlLibrary
Library           Dialogs

*** Variables ***
${EXCEL BASE PATH}    C:\\Users\\developer\\Robot Framework\\Excel\\
${EXCEL FILE EXTENSION}    .xlsx
${EXCEL NAME}     ${EMPTY}
${EXCEL SHEET}    Sheet

提供 Excel 名称文件(测试用例文件):
Resource          Resources/CommonResources.robot

*** Test Cases ***
Provide Excel Name
    ${EXCEL NAME}    Get Value From User    Please provide name of Excel-file
    Log to console    ${EXCEL NAME}
    ${FULL EXCEL PATH}    Catenate    ${EXCEL BASE PATH}    ${EXCEL NAME}    ${EXCEL FILE EXTENSION}
    Log to console    ${FULL EXCEL PATH}

最佳答案

您在控制台中看到的反斜杠实际上根本不是问题。反斜杠字符是“特殊的”,因为它用于在字符串中添加控制符号(想想 \n 换行),当它必须用作文字字符 \ 时,它需要被转义 - 自己:)。
所以你写成一个变量值C:\\Users\\developer当您希望最终结果为 C:\Users\developer 时.

额外的空格 - 这是因为 Catenate 的默认行为- 默认情况下,它使用该字符连接参数。这可以通过 SEPARATOR 进行更改。争论:

${FULL EXCEL PATH}=   Catenate    SEPARATOR=${EMPTY}    ${EXCEL BASE PATH}    ${EXCEL NAME}    ${EXCEL FILE EXTENSION}
${EMPTY}是一个特殊变量,等于 ""- 一个空字符串。

顺便说一句,还有另一种获取结束字符串的方法,只需使用 Set Variable传递 3 个其他变量 - 框架将用它们的实际值替换它们:
${FULL EXCEL PATH}=   Set Variable   ${EXCEL BASE PATH}${EXCEL NAME}${EXCEL FILE EXTENSION}

关于excel - 机器人框架和 Excel : Constructing full path to Excel-file of different parts of the path (Open Pyxl Library),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60185079/

相关文章:

MySQL ORDER BY 似乎按十六进制排序而不是按字母顺序排序

java - 在jsp中连接url

xpath - 我可以在机器人框架中获取xpath计数值吗

excel - 使用列标题的自动求和列

sql - MS EXCEL 到 MS ACCESS .accdb 数据库从 VBA SQL 语法错误

c++ - ##(双哈希)在预处理器指令中做了什么?

robotframework - Robot Framework 有时元素不可见

json - 如何在机器人框架中将json数据文件加载到变量中?

excel - 编码变化范围

php - 导入Excel文件到MySQL