首页 > 解决方案 > 数据未写入 Excel 文件,Robot 框架中未引发错误

问题描述

我正在尝试将从应用程序返回的值写入机器人框架中的现有 excel 文件

我有一个具有以下代码的 .py 文件

def writeData(file,sheetname,rownum, colnum,data):
workbook = openpyxl.load_workbook(file)
sheet = workbook[sheetname]
sheet.cell(row=rownum, column=colnum).value= data
workbook.save(file)

我在我的 common.robot 文件中调用它

WriteToExcel
  ${excel}  set variable     writedata       ${fileName}     Sheet1    10      10       ${refNumber}

执行后,我没有看到任何错误,也没有任何值写入 excel 文件。

标签: robotframeworkopenpyxl

解决方案


Robot Framework 是为用户在案例主体中调用关键字而设计的。

当您调用 时${x}= Set Variable value,您是在告诉它“调用关键字 Set Variable,并将结果分配给变量 x”。Set Variable用于其名称所说的 - 将值静态分配给标识符(变量的名称)。您在尝试将其更改为的评论中说过Create List (也许我的评论误导了您,抱歉!),这将再次按照其名称所说的那样创建一个列表(您传递给它的所有参数都会成为成员),并将其分配给变量。

现在,您已经创建了一个关键字 - writeData,它可以执行您希望它执行的操作。你将如何让它执行?就叫吧;no Set Variable,或需要其他关键字。
如果“WriteToExcel”是案例的名称,则:

WriteToExcel
    writedata       ${fileName}     Sheet1    10      10

,应该这样做。

我故意${excel}在您的问题中省略了调用前缀的变量-因为查看python的方法定义,它没有return声明-它不返回任何内容,因此没有分配任何内容。
如果您曾经将该函数更改为现在返回一些值,那么在 RF 中调用它的方法是:

WriteToExcel
    ${excel}=    writedata_that_returns_something       ${fileName}     Sheet1    10      10

推荐阅读