如何在机器人框架中基于其他元素文本/状态使用两个定位器之一

时间:2018-10-30 08:48:00

标签: robotframework

如何在机器人框架中的元素上使用两个定位器?如果定位器1不起作用,则应采用定位器2。以下是我正在尝试但无法正常工作的代码示例。

   ${button}  Element Should Contain  ${QAM}  Create button
    Run Keyword If  ${button}  click element  ${button1}
    ...  ELSE  click element  ${button2}

1 个答案:

答案 0 :(得分:1)

您很亲密,唯一的问题是关键字Element Should Contain是一个断言-如果通过,则案例将继续,如果失败,则将停止执行。作为断言,它也不会返回值-通常,与该值无关,关键字本身控制流。

因此,要实现所需的功能-在不停止执行的情况下获得断言状态,您必须将其包装在专用于该Run Keyword And Return Status的特殊关键字中。它的作用是调用wrapd关键字,并返回布尔值-True / False是否通过或失败。这是您的代码:

${button}=    Run Keyword And Return Status    Element Should Contain  ${QAM}  Create button
Run Keyword If  ${button}    click element  ${button1}
...  ELSE  click element  ${button2}