如果与 'OR' 一起使用,如何制作 运行 关键字?

How to make Run Keyword If work with 'OR'?

我正在尝试将 Run Keyword If 一起使用,但由于某种原因它不起作用,我不明白为什么。它向我显示错误 未找到名称为 'or' 的关键字。我假设有一些语法错误。我也尝试过 OR 但它没有用。

Keyword 1
Check Walkthrough Guide Opened
Go to    ${WALKTHROUGH_URL}
Open Walkthrough Guide If It's Closed
Wait Until Element Is Visible    ${WELCOME_POPUP}    ${WFE_TIMEOUT}
Page Should Contain Element    ${POPUP_TITLE}

Keyword 2
${ELEMS}=    Execute JavaScript    return localStorage.getItem('peopleAnalyticsTourDismiss')
Run Keyword If    ('${ELEMS}' == 'true')  or  (${ELEMS}' == 'None')   Run Keywords
...    Execute Javascript    localStorage.setItem('peopleAnalyticsTourDismiss', 'false')
...    AND    Reload Page

您需要将“或”两边的两个 space 转换为一个 space。机器人看到两个或更多 space 并认为“或”是 运行.

的关键字
Run Keyword If    ('${ELEMS}' == 'true')  or  (${ELEMS}' == 'None')   Run Keywords
#                                       ^^  ^^

Robot Framework 将您的 OR 理解为关键字 运行 关键字 If 的第二个参数。将双空格切换为单个空格,如下例所示:

Run Keyword If    ('${ELEMS}' == 'true') or (${ELEMS}' == 'None')   Run Keywords

这样,机器人会将 ('${ELEMS}' == 'true') or (${ELEMS}' == 'None') 理解为 运行 关键字的一个参数 If,with 是条件一。

如果你还有疑问,我发现这个issue有类似的问题,并且有一个很好的解决方案作为例子。

另一件可能会给您带来麻烦的事情是,您在第二次比较的开头错过了 'or (${ELEMS}' == 'None')。尝试将其更改为以下选项之一:
or ('${ELEMS}' == 'None')
or ("${ELEMS}" == "None")
or ("""${ELEMS}""" == """None""")

三引号的疑惑请参考Builtin