Robot Framework "Write Data By Coordinates"-与"run keyword if"一起使用时的关键字问题
Robot Framework "Write Data By Coordinates"-keyword problem when used with "run keyword if"
我正在尝试使用 Robot Framework 做一个演示,它将 Yes 或 No 作为文本写入 Excel 列号 31 中的行(Excel-包含大量音乐数据的文件不同的列)取决于在同一 Excel 文件的不同列中的音乐曲目名称被该网站上的 Robot 自动写入搜索输入字段后,按钮在网站上是否可见。搜索是在 for 循环中一次搜索完成的。因此 Robot 从 Excel-file 中读取一个曲目名称,然后进行搜索以搜索网站上的输入字段,并继续循环执行此操作,只要在为曲目保留的 Excel 列中有要读取的曲目.根据搜索结果,网站上有一个按钮的行为会有所不同,因此我会根据值 true 或 false 自动将是或否写入 Excel-file,以判断每次搜索后按钮是否可见。
很遗憾,我无法 post 完整代码,因为这与生产中的正常运行网站有关
但除此之外,我的代码可以工作,只是这个 Excel 编写部分还不能工作。此演示正在测试过程自动化以供以后实际使用。
所以想法是,如果 ${BUTTON VISIBLE} 返回为真,那么我们将在 Excel 行中写 Yes。
如果它改为 returns 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 会在先写入 "Write Data By Coordinates" 并将鼠标光标放在需要第一个参数的单元格上后正确地告诉它需要什么作为参数。因此,例如,第一个红色单元格按预期要求输入 sheet 名称。
但是如果 "Write Data By Coordinates" 像这样位于 "Run Keyword if" 之后
然后 "Write Data By Coordinates" 所需的参数改为 "Optional arguments",因此这些参数没有像 "Write Data By Coordinates" 通常期望的那样正确。我还是尝试了这个版本,如果它仍然可以作为 "Optional arguments" 但没有成功。
根据我的经验,像 "Click Element" 这样的简单关键字在 "Run Keyword if" 旁边效果很好,但是像 "Write Data By Coordinates" 这样的关键字需要很多参数,这似乎不是那么简单。
我试图将 "Write Data By Coordinates" 部分放在下一行,但在 "Run Keyword if '${BUTTON VISIBLE}' == 'TRUE'"
之后询问 "Missing argument: name"
我怎样才能更正语法以使 "Run Keyword if" 和 "Write Data By Coordinates" 一起工作?
用于处理 Excel 的库是 Open Pyxl Library。
Robot 记录的关于 true 或 false 的结果(从 Excel 读取了 9 条轨道,第二条轨道如预期的那样导致 false):
True
False
True
True
True
True
True
True
True
第 31 列 Excel 中的预期结果(否则将在上面的代码中添加错误案例):
Yes
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
此时Excel第31列的实际结果:
空行
试试这个:
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
我正在尝试使用 Robot Framework 做一个演示,它将 Yes 或 No 作为文本写入 Excel 列号 31 中的行(Excel-包含大量音乐数据的文件不同的列)取决于在同一 Excel 文件的不同列中的音乐曲目名称被该网站上的 Robot 自动写入搜索输入字段后,按钮在网站上是否可见。搜索是在 for 循环中一次搜索完成的。因此 Robot 从 Excel-file 中读取一个曲目名称,然后进行搜索以搜索网站上的输入字段,并继续循环执行此操作,只要在为曲目保留的 Excel 列中有要读取的曲目.根据搜索结果,网站上有一个按钮的行为会有所不同,因此我会根据值 true 或 false 自动将是或否写入 Excel-file,以判断每次搜索后按钮是否可见。
很遗憾,我无法 post 完整代码,因为这与生产中的正常运行网站有关 但除此之外,我的代码可以工作,只是这个 Excel 编写部分还不能工作。此演示正在测试过程自动化以供以后实际使用。
所以想法是,如果 ${BUTTON VISIBLE} 返回为真,那么我们将在 Excel 行中写 Yes。 如果它改为 returns 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 会在先写入 "Write Data By Coordinates" 并将鼠标光标放在需要第一个参数的单元格上后正确地告诉它需要什么作为参数。因此,例如,第一个红色单元格按预期要求输入 sheet 名称。
但是如果 "Write Data By Coordinates" 像这样位于 "Run Keyword if" 之后
然后 "Write Data By Coordinates" 所需的参数改为 "Optional arguments",因此这些参数没有像 "Write Data By Coordinates" 通常期望的那样正确。我还是尝试了这个版本,如果它仍然可以作为 "Optional arguments" 但没有成功。
根据我的经验,像 "Click Element" 这样的简单关键字在 "Run Keyword if" 旁边效果很好,但是像 "Write Data By Coordinates" 这样的关键字需要很多参数,这似乎不是那么简单。 我试图将 "Write Data By Coordinates" 部分放在下一行,但在 "Run Keyword if '${BUTTON VISIBLE}' == 'TRUE'"
之后询问 "Missing argument: name"我怎样才能更正语法以使 "Run Keyword if" 和 "Write Data By Coordinates" 一起工作?
用于处理 Excel 的库是 Open Pyxl Library。
Robot 记录的关于 true 或 false 的结果(从 Excel 读取了 9 条轨道,第二条轨道如预期的那样导致 false):
True
False
True
True
True
True
True
True
True
第 31 列 Excel 中的预期结果(否则将在上面的代码中添加错误案例):
Yes
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
此时Excel第31列的实际结果: 空行
试试这个:
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