Robotframework robot测试框架:如果用户关键字不包含关键字,则运行关键字

Robotframework robot测试框架:如果用户关键字不包含关键字,则运行关键字,robotframework,Robotframework,以下代码位于For循环中 ELSE Enable Laser${app_id}${status}导致用户关键字“Enable Laser”不包含关键字错误。但是,如果我将其更改为,如果'${electricalApp}'='True'启用激光${app_id}${status},则此行没有错误,但行运行关键字if'${electricalApp}'='True'启用激光${app id}${status},如下所示,导致用户关键字“启用激光”不包含关键字错误 \ ${electricalAp

以下代码位于For循环中

ELSE Enable Laser${app_id}${status}
导致用户关键字“Enable Laser”不包含关键字错误。但是,如果我将其更改为
,如果'${electricalApp}'='True'启用激光${app_id}${status}
,则此行没有错误,但行
运行关键字if'${electricalApp}'='True'启用激光${app id}${status}
,如下所示,导致用户关键字“启用激光”不包含关键字错误

\   ${electricalApp}    Is App Electrical    ${app}
\   ${status}    Set Variable    ON
\   ${validOptic}    Set Variable    False
\   ${validOptic}    Run Keyword If    '${electricalApp}'=='False'    Is Optic Valid For App    ${app_id}    ${app}
\   ...              ELSE    Enable Laser    ${app_id}    ${status}
\   Run Keyword If    '${validOptic}'=='True'    Enable Laser    ${app_id}    ${status}
\   ${status}    Set Variable    OFF
\   Run Keyword If    '${electricalApp}'=='True'    Enable Laser    ${app_id}    ${status}
\   Run Keyword If    '${validOptic}'=='True'    Enable Laser    ${app_id}    ${status}
\   Exit Current Running Apps
在我将上述代码放入For循环之前,一切都运行良好

编辑:启用激光器:

Enable Laser    [Arguments]     ${app_id}   ${status}
[Documentation]     Turn on or off laser and then check Signal Sync Link. ${status} should be all upper case
    ${commmand}    Catenate    SEPARATOR=    ${app_id}    .0.SignalTx.LaserEnable
    send cmd    ${app_id}    a_goto_state    ${commmand}    ${status}
    ${inquiry}    Catenate    SEPARATOR=    ${app_id}    .0.SignalTx.LaserState
    ${payload}    send cmd    ${app_id}    r_get    ${inquiry}
    ${parameters}    Evaluate    $payload.parameters
    Run Keyword If    '${status}'=='ON'    Should Be Equal    '1'    ${parameters}    Current state should be 1
    Run Keyword If    '${status}'=='OFF'    Should Be Equal    '0'    ${parameters}    Current state should be 0
    Signal Sync Link Verification    ${app_id}    ${status}

事实证明,在
启用激光
的定义中,
[文档]
需要缩进

像这样:

Enable Laser    [Arguments]     ${app_id}   ${status}
    [Documentation]     Turn on or off laser and then check Signal Sync Link. ${status} should be all upper case
    ${commmand}    Catenate    SEPARATOR=    ${app_id}    .0.SignalTx.LaserEnable
    send cmd    ${app_id}    a_goto_state    ${commmand}    ${status}

请与我们共享该关键字的代码
启用激光
?@JanKovarik谢谢,代码已添加。请修复代码的格式。第一个块很混乱,代码和文本混杂在一起。@BryanOakley如果你阅读它,你会发现这些代码是文本的一部分。请阅读并遵循这里的建议:这太疯狂了。我没有注意到,也没有尝试复制粘贴。无论如何,我很高兴你解决了这个问题。无论如何,非常感谢你。真是疯了,这狗屎把我抓了快一天了。