【问题标题】:Nested Run Keywords Statement In Robot Framework机器人框架中的嵌套运行关键字语句
【发布时间】:2020-05-29 13:24:37
【问题描述】:

我必须执行一个嵌套的 run 关键字语句,并且我在函数中遵循以下代码:

${value}=  Run keyword And Return Status   Dictionary Should Contain Key  ${details}  edit
    Run Keyword If   '${value}'=='True' 
    ...  Run Keywords
        ...    Run Keyword If  '&{details}[edit]'=='Block1'  Log  Block1 Call
        ...    AND  Run Keyword If  '&{details}[edit]'=='Block2'  Log  Block2 Call
        ...    AND  Run Keyword If  '&{details}[edit]'=='Block3'  Log  Block3 Call
        ...    AND  Run Keyword If  '&{details}[edit]'=='Block4'
                    ...  Run Keywords
                            ...  Log  Block4 1 Call
                                ...    AND  Log  Block4 2 Call
                                ...    AND  Log  Block4 3 Call
        ...    AND  Run Keyword If  '&{details}[edit]'=='Block5'
                     ...  Run Keywords
                            ...  Log  Block5 1 Call
                                ...    AND  Log  Block5 2 Call
                                ...    AND  Log  Block5 3 Call

当我将值作为 Block2 传递时,它返回:

Block2 Call
Block4 2 Call
Block4 3 Call

Also, it does not return correct response with values 'Block4' and 'Block5'
I have tried this with ELSE If Statements also, but still this does not work.

Does Run Keyword does not support the Nested Statements?  Or Is there any other which by which this can be accomplished?

【问题讨论】:

    标签: if-statement nested robotframework


    【解决方案1】:

    通过将所有条件放在一个单独的方法中解决了这个问题:

    ${value}=  Run keyword And Return Status   Dictionary Should Contain Key  ${details}  edit
        Run Keyword If   '${value}'=='True'  Run_Conditions  &{details}
    
    Run_Conditions
         [Arguments]  &{details}
         Run Keyword If  '&{details}[edit]'=='Block1'  Log  Block1 Call
         Run Keyword If  '&{details}[edit]'=='Block2'  Log  Block2 Call
         Run Keyword If  '&{details}[edit]'=='Block3'  Log  Block3 Call
         Run Keyword If  '&{details}[edit]'=='Block4'
         ...  Run Keywords
               ...  Log  Block4 1 Call
               ...    AND  Log  Block4 2 Call
               ...    AND  Log  Block4 3 Call
         Run Keyword If  '&{details}[edit]'=='Block5'
         ...  Run Keywords
              ...  Log  Block5 1 Call
              ...    AND  Log  Block5 2 Call
              ...    AND  Log  Block5 3 Call
    
    

    【讨论】:

      猜你喜欢
      • 2016-04-07
      • 2020-11-06
      • 2015-11-07
      • 2013-11-08
      • 2016-12-17
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 2020-09-04
      相关资源
      最近更新 更多