If statement 从运行关键字中获取关键字的返回值
通常从关键字获取返回值不是什么大问题If statement 从运行关键字中获取关键字的返回值,if-statement,robotframework,return-value,multiple-return-values,If Statement,Robotframework,Return Value,Multiple Return Values,通常从关键字获取返回值不是什么大问题 ${myVar}= My Keyword 这将如预期的那样起作用 我试图解决的问题在类似以下情况下可能会出现。我通常都能找到工作,但我想找一个更好的方法 Run Keyword If '${someVar}' == 'True' Run Keywords ... Do Something ... AND ${myVar}= My Keyword ... AND
${myVar}= My Keyword
这将如预期的那样起作用
我试图解决的问题在类似以下情况下可能会出现。我通常都能找到工作,但我想找一个更好的方法
Run Keyword If '${someVar}' == 'True' Run Keywords
... Do Something
... AND ${myVar}= My Keyword
... AND Do More Stuff
当我需要写这样的东西时,My关键字
关键字不会被识别为关键字,我无法运行测试。我可以把它从条件中拉出来,在之前运行关键字,但这意味着我将浪费时间运行一个不应该运行的关键字,有时会导致失败。我发现了这个,但这是针对单个关键字的,我不确定是否可以扩展到多个关键字。另外,还可能出现以下情况,使事情更加复杂,
Run Keyword If '${someVar}' == 'True' Run Keywords
... Do Something
... AND ${myVar}= My Keyword
... AND Do More Stuff
... AND ${myVar_2}= My Other Keyword
... AND Do Other Stuff
有人有什么建议吗?我是否应该将一个Run关键字If
拆分为几个Run关键字If
,这样我就可以利用上面链接中的示例?如果有任何建议,我将不胜感激
更新:
如果其他人遇到这个问题,我解决这个问题的方法如下:
Run Keyword If '${someVar}' == 'True' Do Something
${myVar}= Run Keyword If '${someVar}' == 'True' My Keyword
Run Keyword If '${someVar}' == 'True' Run Keywords
... Do More Stuff
... AND And Do Other More Stuff
稍后我将研究新的
IF
条件,但我想在忘记之前立即更新它。您链接到的问题是同一个解决方案,而不是运行一个或多个关键字
${result}= Run keyword if '${someVar}' Run Keywords ...
在这种情况下,运行关键字
返回的内容将被分配给${result}
。无法在运行关键字的参数中进行变量赋值
如果需要运行多个步骤,最好使用这些步骤创建一个关键字,然后从runkeyword If
注意:RobotFramework4.0(在我读到这篇文章的时候它还在)支持。据说它将在2020年底发布。本机IF语句允许您在IF块体中分配变量
有了对IF
语句的新支持,您可以像这样重写示例:
IF '${someVar}' == 'True'
Do Something
${myVar}= My Keyword
Do More Stuff
${myVar_2}= My Other Keyword
Do Other Stuff
END
谢谢我不知道有人支持IF语句。