Robotframework 运行Run关键字If-else后如何分配变量?
我正在尝试分配一个变量-Robotframework 运行Run关键字If-else后如何分配变量?,robotframework,Robotframework,我正在尝试分配一个变量-body,具体取决于另一个变量的状态phonenumber\u id。如果phonenumber\u id为NULL,body被分配为False。 但它似乎不起作用。只有当他phonenumber\u id不是NULL时,它才起作用 ${body}= Run keyword if '${phonenumber_id}'!='NULL' Set variable TRUE ... Else Set Variable
body
,具体取决于另一个变量的状态phonenumber\u id
。如果phonenumber\u id
为NULL
,body
被分配为False。但它似乎不起作用。只有当他
phonenumber\u id
不是NULL
时,它才起作用
${body}= Run keyword if '${phonenumber_id}'!='NULL' Set variable TRUE
... Else Set Variable FALSE
不知道我做错了什么 关键字
设置变量If
将根据给定条件设置变量
${body}= Set Variable If '${phonenumer_id} != 'NULL'
... ${True} ${False}
你几乎答对了-只是打错了ELSE-它必须是大写字母,如果,则被视为
Run关键字的一部分。所以在你的特殊情况下,应该是:
${body}= Run keyword if '${phonenumber_id}'!='NULL' Set variable TRUE
... ELSE Set Variable FALSE
对于只设置一个新常量值的简单情况,@ILostMySpoon已经足够好了,而且更“可读”
一般来说,对于在这篇文章中结结巴巴的人来说,Run关键字If
与ELSE Set变量
相结合是设置/更改变量的一个非常强大的构造,因为它不仅有条件地运行关键字,而且还将其返回值传播回堆栈
考虑这个例子:
${var}= Run Keyword If ${bool condition} Do Some Action Returning A Value
... ELSE Set Variable ${var}
在它中,{var}
将被设置为的返回值,仅当${bool condition}
的计算结果为true时,才执行返回值的操作,否则将保留其旧值
另一个人为但不太抽象的例子:
${value}= Run Keyword If ${should be int} Convert To Integer ${value}
... ELSE IF ${should be float} Convert To Number ${value}
... ELSE Set Variable ${value}
“不工作”是什么意思?您是否收到错误,或者无论${phonenumber\u id}
是什么,它总是将其设置为相同的值?另外,您是想对照字符串“NULL”
,还是对照python值None
?当第一个条件为true时,它为${body}分配了这个Set变量true。。。否则将变量设置为FALSE
,但如果编辑您的答案,我会很高兴地删除downvote。