使用在关键字函数中创建的文件作为参数

Using a file created in a keyword function as an argument

对如何将创建的文件用于机器人框架中的函数感到困惑。通常我会按照 f = open("logFileTest.txt", "w") 的方式做一些事情,然后像这样将 f 传递给函数 getAddresses(f)

编写此 getAddresses 函数是为了使用传递的参数进行日志记录。

    def getAddresses(logFile=None):
        print("Entering getAddresses!", file=logFile)

因此,在将其转换为机器人框架时,我尝试创建一个文件并将创建的文件设置为一个变量,然后使用新创建的变量调用该函数。

    ${logFile}=            Create File            log.txt
    ${addresses}=    Get Addresses    ${logFile}

然而,这将 logFile 设置为 none 而不是我希望将其设置为新创建的 log.txt。

robot framework中除了Get File还有其他打开文件的方法吗?在这种情况下获取文件不起作用,因为它仅 returns 文件的内容。

Create File 没有 return 文件路径(或根据文档 [1] 的任何内容)。您可以将路径设置为变量并将其作为参数提供给 Create File 关键字,然后也提供给您的 Get Addresses 关键字。

${path}=         Set Variable     log.txt
Create File      ${path}
${addresses}=    Get Addresses    ${path}

然后在关键字实现中你需要打开它(因为只传递路径):

def getAddresses(logFile):
    with open(logFile, 'w') as f:
        print('Entering getAddresses!', file=f)

[1] https://robotframework.org/robotframework/latest/libraries/OperatingSystem.html#Create%20File