【问题标题】:Robot Framework - performing multiple keywords after running keyword ifRobot Framework - 在运行关键字 if 后执行多个关键字
【发布时间】:2015-07-13 22:30:18
【问题描述】:

如果条件评估为真,我将尝试执行多个关键字。

我试图做这样的事情

 *** Test Cases ***
| Example

 *** Keywords ***
| Example
|  | ${title}=  Get Title
|  | Run Keyword If      | '${title}' == 'Some Title' 
|  | ... Click Element   |  xpath=some element 
|  | ... Element Text Should Be  |   xpath=some element   |  some text
|  | ... Else
|  | ... Click Element   | xpath=other element  

我在运行时遇到的错误是 Click Element 需要 1 个参数但得到 4 个。

我知道我可以在测试用例部分设置 if 语句,如果评估为 true,它将运行一个包含我想要的所有内容的关键字,但我想知道是否有办法从关键字部分执行此操作。

谢谢。

【问题讨论】:

    标签: selenium-webdriver robotframework


    【解决方案1】:

    你可以做几件事。首先是创建一个新关键字来调用所有其他关键字,然后从Run keyword if 调用它。这可能是最易读的解决方案,但代价是必须编写和记录另一个关键字。

    另一种选择是使用Run keyword ifRun keywords 的组合,如下所示:

    | | Run Keyword if | '${title}' == 'Some Title'
    | | ... | Run Keywords
    | | ... | Click Element | xpath=some element
    | | ... | AND | Element Text Should Be  |  xpath=some element | some text
    | | ... | ELSE
    | | ... | Click Element | xpath=other element
    

    【讨论】:

    • 使用 Run Keywords 时,请确保使用大写字母 AND(根据文档使用带参数的关键字时需要)
    【解决方案2】:

    运行关键字不接受带参数的关键字,因此您不能使用this。选项是为运行关键字下面的所有语句创建关键字并调用它。 https://robotframework.googlecode.com/svn/trunk/doc/libraries/BuiltIn.html#Run -- 如果执行的关键字需要带参数,则必须使用用户关键字。

    【讨论】:

    • “运行关键字不接受带参数的关键字”——这不是一个正确的说法。
    猜你喜欢
    • 2016-12-16
    • 2019-11-07
    • 2021-07-17
    • 2022-08-09
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2018-12-20
    • 2016-09-17
    相关资源
    最近更新 更多