如何使用Robot Framework获取列表中的项目数?

时间:2017-12-19 14:15:49

标签: robotframework

我创建了一个关键字

Select Topic

    [Arguments]  @{input}
    ${cnt}=  Get length   @{input}
    Log ${cnt}

在另一个Robot Framework文件中,我使用参数

调用关键字
 select topic  1 2 3 4

因此预期输出为4,但结果显示为7(包括空格)。

2 个答案:

答案 0 :(得分:3)

当您传递1 2 3 4之类的内容时,您传递的是一个文字字符串1 2 3 4。如果要传递四个或更多参数的列表,则每个参数之间需要两个或多个空格:

此外,作为一般规则,在尝试引用对象本身时,您需要使用$而不是@。当您使用@时,机器人会将列表拆分为单独的参数。

这是一个有效的例子。注意在调用关键字时每个数字之间的两个空格,以及在调用$时使用get length

*** Test Cases ***
test1
    Select Topic  1  2  3  4

*** Keywords ***
Select Topic
    [Arguments]    @{input}
    ${cnt}=    Get length    ${input}
    should be equal as numbers  ${cnt}  4

答案 1 :(得分:2)

关键字期望列表形式中的一个参数。运行解释的Robot Framework将为无效数量的参数抛出异常。创建一个列表并将其传递给关键字。

以下解决方案适合您:

**** Test Cases ***
test1
    ${List1}    Create List    1    2    3    4
    Select Topic    ${List1}

*** Keywords ***
Select Topic
    [Arguments]    @{input}
    ${cnt}=    Get length    @{input}
    Log     ${cnt}*