机器人框架“按坐标写入数据”-与“运行关键字 if”一起使用时的关键字问题

Posted

技术标签:

【中文标题】机器人框架“按坐标写入数据”-与“运行关键字 if”一起使用时的关键字问题【英文标题】:Robot Framework "Write Data By Coordinates"-keyword problem when used with "run keyword if" 【发布时间】:2020-06-09 02:41:28 【问题描述】:

我正在尝试使用 Robot Framework 进行演示,根据按钮是否可见,它将 Yes 或 No 作为文本写入 Excel 列号 31(Excel 文件在不同列上包含大量音乐数据)中的行在同一 Excel 文件的不同列中的音乐曲目名称被写入该网站上的机器人自动搜索输入字段后,或者不在该网站上。搜索在 for 循环中作为一次搜索完成。因此,Robot 从 Excel 文件中读取一个曲目名称,然后搜索网站上的搜索输入字段并继续循环执行此操作,只要在为曲目保留的 Excel 列中有要读取的曲目。根据搜索结果,网站上有一个行为不同的按钮,因此我会根据值 true 或 false 自动将 yes 或 no 写入 Excel 文件,以了解每次搜索后按钮是否可见。

很遗憾,我无法发布完整代码,因为这与生产中的正常运行网站有关 但否则我的代码可以工作,只是这个 Excel 写作部分还不能工作。此演示正在测试流程自动化以供以后实际使用。

所以我们的想法是,如果 $BUTTON VISIBLE 返回为 true,那么我们会将 Yes 写入 Excel 行。 如果它返回 false,那么我们将写为 No。 根据特定搜索工作后按钮是否可见,返回并记录 true 或 false。

我的问题是这部分代码:

$BUTTON VISIBLE=    Run Keyword And Return Status    Element Should Be Visible    xpath://html/body/ng-view/search-music/div/div[2]/div[1]/collapsible/div/song-list/md-list/div[1]/md-list-item/div
Log to console    $BUTTON VISIBLE
Run Keyword if    '$BUTTON VISIBLE' == 'TRUE'    Write Data By Coordinates     $EXCEL SHEET    31    $ROW    Yes  

问题是,如果我通常将此行写入 RIDE-editor

Write Data By Coordinates     $EXCEL SHEET    31    $ROW    Yes  

然后,RIDE-editor 会在首先编写“按坐标写入数据”并将鼠标光标放在该单元格上之后需要第一个参数之后正确地告诉它需要什么作为参数。因此,例如,第一个红色单元格按预期要求工作表名称。

但是如果“按坐标写入数据”位于“运行关键字 if”之后,就像这样

然后,“按坐标写入数据”所需的那些参数改为“可选参数”,因此这些参数不正确,就像“按坐标写入数据”通常期望的那样。如果它仍然可以用作“可选参数”但没有成功,我无论如何都尝试了这个版本。

根据我的经验,像“Click Element”这样的简单关键字在“Run Keyword if”旁边效果很好,但是像“Write Data By Coordinates”这样的关键字需要很多参数,这似乎不是那么简单。 我试图将“按坐标写入数据”部分放在下一行,但是在“运行关键字 if '$BUTTON VISIBLE' == 'TRUE'”之后询问“缺少参数:名称”

如何更正我的语法以使“Run Keyword if”和“Write Data By Coordinates”协同工作?

处理 Excel 的库是 Open Pyxl Library。

Robot 记录的关于真假的结果(从 Excel 中读取了 9 个轨道,第二个轨道导致错误,正如预期的那样):

True
False
True
True
True
True
True
True
True

Excel 列号 31 中的预期结果(在 else 错误情况下将添加到上面的代码中):

Yes
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes

此时Excel第31列的实际结果: 空行

【问题讨论】:

【参考方案1】:

试试这个:

Run Keyword If    '$BUTTON VISIBLE'=='$TRUE'    Write Data By Coordinates    $EXCEL SHEET    31    $ROW    Yes
...    ELSE IF    '$BUTTON VISIBLE'=='$FALSE'    Write Data By Coordinates    $EXCEL SHEET    31    $ROW    No

【讨论】:

以上是关于机器人框架“按坐标写入数据”-与“运行关键字 if”一起使用时的关键字问题的主要内容,如果未能解决你的问题,请参考以下文章

深度学习及机器学习框架对比摘要

ROS导航与定位框架

第497期机器学习日报(2016-01-28) 深度学习框架的评估与比较

Apple 开源机器学习框架 Turi Create 简介与实践

分布式机器学习框架与高维实时推荐系统

机器学习与视觉训练的相关框架