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

pra*_*tla 5 robotframework

我创建了一个关键字说

Select Topic

    [Arguments]  @{input}
    ${cnt}=  Get length   @{input}
    Log ${cnt}
Run Code Online (Sandbox Code Playgroud)

在另一个机器人框架文件中,我将参数调用为关键字

 select topic  1 2 3 4
Run Code Online (Sandbox Code Playgroud)

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

Bry*_*ley 7

当您传递类似的内容时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
Run Code Online (Sandbox Code Playgroud)


小智 3

该关键字需要一个列表形式的参数。运行解释的机器人框架将因参数数量无效而引发异常。创建一个列表并将其传递给关键字。

以下解决方案应该适合您:

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

*** Keywords ***
Select Topic
    [Arguments]    @{input}
    ${cnt}=    Get length    @{input}
    Log     ${cnt}*
Run Code Online (Sandbox Code Playgroud)