RobotFramework:使用'时获取返回值;运行关键字{if,除非}';

RobotFramework:使用'时获取返回值;运行关键字{if,除非}';,robotframework,Robotframework,在RobotFramework中,从关键字中获取返回变量通常很容易,只需在关键字中输入一个返回值,然后在变量之后运行关键字来存储返回值 当我想有条件地运行那个关键字时,我遇到了一个问题。Run关键字If和Run关键字except关键字,以及等待关键字successed关键字,都期望关键字作为第一个参数,如果第一个参数是变量,则会抛出错误 目前,我正在通过在关键字中设置套件级别的变量来解决这个问题,我知道我将有条件地运行这些关键字,但这感觉有点笨拙。更糟糕的是,我必须重构任何在最初设计时不需要作为

在RobotFramework中,从关键字中获取返回变量通常很容易,只需在关键字中输入一个返回值,然后在变量之后运行关键字来存储返回值

当我想有条件地运行那个关键字时,我遇到了一个问题。
Run关键字If
Run关键字except
关键字,以及
等待关键字successed
关键字,都期望关键字作为第一个参数,如果第一个参数是变量,则会抛出错误

目前,我正在通过在关键字中设置套件级别的变量来解决这个问题,我知道我将有条件地运行这些关键字,但这感觉有点笨拙。更糟糕的是,我必须重构任何在最初设计时不需要作为条件关键字的关键字。当然,我不能使用返回变量,永远,而且总是设置套件级别的变量,但这让我感觉脏兮兮的


我还没有找到一个干净的方法来做这件事。这是可行的,但我希望其他人能找到更好的方法。

你提到的那些关键字返回它们运行的关键字的值,因此你可以像平常一样捕获返回结果

例如:

*** Test Cases ***
| Example
| | ${foo}= | Set variable | true
| | ${bar}= | Run keyword if | "${foo}" == "true" 
| | ... | set variable | this is bar
| | Should be equal | ${bar} | this is bar

您提到的那些关键字返回它们运行的关键字的值,因此您可以像通常一样捕获返回结果

例如:

*** Test Cases ***
| Example
| | ${foo}= | Set variable | true
| | ${bar}= | Run keyword if | "${foo}" == "true" 
| | ... | set variable | this is bar
| | Should be equal | ${bar} | this is bar

非常感谢您抽出时间回答这个问题。在阅读了你的答案之后,我回去阅读了内置的库指南,意识到如果我看了所有的例子,而不是像大多数其他关键字那样,条件关键字没有指定返回值,我自己就可以回答这个问题。这将教会我只看我希望看到答案的地方。再次感谢你。非常感谢你花时间回答这个问题。在阅读了你的答案之后,我回去阅读了内置的库指南,意识到如果我看了所有的例子,而不是像大多数其他关键字那样,条件关键字没有指定返回值,我自己就可以回答这个问题。这将教会我只看我希望看到答案的地方。再次感谢你。