【问题标题】:How to make Run Keyword If work with 'OR'?如果使用“或”,如何制作运行关键字?
【发布时间】:2021-05-28 06:11:18
【问题描述】:

我正在尝试将Run Keyword If一起使用,但由于某种原因它不起作用,我不明白为什么。它向我显示了一个错误没有找到名称为“或”的关键字。我假设有一些语法错误。我也尝试了 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

【问题讨论】:

  • 您收到了两个答案,他们都解决了您的问题。请考虑接受一个。 :)

标签: robotframework


【解决方案1】:

Robot Framework 将您的 OR 理解为关键字 Run Keyword If 的第二个参数。将双空格换成单空格,如下例:

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

这样,robot 会将('${ELEMS}' == 'true') or (${ELEMS}' == 'None') 理解为 Run Keyword If 的一个参数,with 是条件一。

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

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

关于三引号的疑问请参考Builtin库。

【讨论】:

  • 不幸的是,它没有帮助。还是一样的错误。
  • @oksa23 我刚刚更新了我的答案,添加了另一个可能的解决方案,可以帮助你,请检查:)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2019-02-14
    • 2018-09-29
    • 2021-02-15
    • 1970-01-01
    • 2011-10-27
    • 2020-05-03
    相关资源
    最近更新 更多