web-dev-qa-db-ja.com

Robot Frameworkを使用してリスト内のアイテムの数を取得するにはどうすればよいですか?

キーワードを作成しました

Select Topic

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

そして、別のRobot Frameworkファイルでは、次のようなパラメータを使用してキーワードを呼び出しています。

 select topic  1 2 3 4

したがって、期待される出力は4ですが、結果は7として表示されます(スペースを含みます)。

2

1 2 3 4のようなものを渡すと、リテラル文字列1 2 3 4である単一の引数を渡すことになります。 4つ以上の引数のリストを渡す場合は、各引数の間に2つ以上のスペースが必要です。

また、原則として、オブジェクト自体を参照する場合は、$ではなく@を使用する必要があります。 @を使用すると、ロボットはリストを個別の引数に分割します。

これが実際の例です。キーワードを呼び出すときは各番号の間に2つのスペースがあり、$を呼び出すときは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
4
Bryan Oakley

キーワードは、リスト形式で1つの引数を期待しています。解釈を実行しているRobotFrameworkは、無効な数の引数に対して例外をスローします。リストを作成し、キーワードに渡します。

以下の解決策があなたのために働くはずです:

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

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