![](/img/trans.png)
[英]'Else' is a reserved keyword Error in Robot Framework script
[英]Get return value from keyword from within Run Keyword If conditional Robot Framework
通常從關鍵字中獲取返回值並不是什么大問題,
${myVar}= My Keyword
這將按預期工作。
我試圖解決的問題類似於以下情況。 我通常可以找到解決方法,但我想找到更好的方法。
Run Keyword If '${someVar}' == 'True' Run Keywords
... Do Something
... AND ${myVar}= My Keyword
... AND Do More Stuff
當我需要寫這樣的東西時, My Keyword
關鍵字不被識別為關鍵字,我無法運行我的測試。 我可以將它從條件中拉出來並在之前運行關鍵字,但這意味着我將浪費時間運行一個不應該運行的關鍵字,有時會導致失敗。 我發現了這個, How to get Returned value from a Keyword called under Run Keyword If in Robot Framework? ,但這是針對單個關鍵字的,我不確定是否可以擴展到多個關鍵字。 此外,可能會出現其他情況,例如以下情況並使事情變得更加復雜,
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 Keyword If
分成幾個Run Keyword 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 ...
在這種情況下,無論Run Keywords
返回什么都將分配給${result}
。 沒有辦法在 arguments 中進行變量賦值來Run Keywords
。
如果您需要運行多個步驟,您可以做的最好的事情是使用這些多個步驟創建一個關鍵字,然后從Run keyword if
注意:robotframework 4.0(在我閱讀本文時處於測試階段)支持原生 IF 語句。 據說2020年底會發布。原生的IF語句可以讓你在IF塊體中賦值變量。
有了對IF
語句的新支持,您可以像這樣重寫您的示例:
IF '${someVar}' == 'True'
Do Something
${myVar}= My Keyword
Do More Stuff
${myVar_2}= My Other Keyword
Do Other Stuff
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.