robotframework - 数据未写入 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 文件。
解决方案
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
推荐阅读
- python - 如何在 Django view.py 中获得如下结构的 Html-Ajax 后数组值?
- excel - VBA中最大可能的十进制值是多少?
- docusignapi - 当我们发送信封进行签名时,如何停止向 Carbon Copy 收件人发送通知?
- python - 如何通过重复一行来连接两个 DataFrame?
- docker - 为什么 docker 在守护进程模式 (-d) 下运行获得权限被拒绝 (selinux) 而不是在交互模式下 (-ti)
- javascript - 如何在 Javascript 中为浏览器设计“终端”或 CLI 应用程序?(模拟阻塞 I/O)
- html - 视频文件在 Internet Explorer11 中 3 秒后停止播放
- selenium - Appium-inspector[android] 无法加载应用内的某些页面
- url-routing - 无法切换路径 404,无法捕获通配符路由
- json - 如何从 JSON 文件中获取价值并在网站上显示