For loop 使用带2个参数的机器人框架的For循环

For loop 使用带2个参数的机器人框架的For循环,for-loop,if-statement,robotframework,For Loop,If Statement,Robotframework,我有两个列表变量@{vinrange}和@{sg},它们的维度都是4 我想对列表变量@{vinrange}中的每个值使用标量${VAR1}打印到日志中,并对列表变量@{sg}中的每个值使用第二个标量${VAR2}打印 我必须将它们分配到同一个循环中,${VAR1}[1]对@{vinrange}有效,但是,我不知道如何处理第二个列表变量@{sg} 尝试使用获取计数而不是对循环进行计数并使用迭代器${i}进行日志记录。 这是给你的样品 ${length}= Get Count ${vinr

我有两个列表变量
@{vinrange}
@{sg}
,它们的维度都是4

我想对列表变量
@{vinrange}
中的每个值使用标量
${VAR1}
打印到
日志中,并对列表变量
@{sg}
中的每个值使用第二个标量
${VAR2}
打印

我必须将它们分配到同一个循环中,
${VAR1}[1]
@{vinrange}
有效,但是,我不知道如何处理第二个列表变量
@{sg}


尝试使用
获取计数
而不是
对循环进行计数
并使用迭代器${i}进行日志记录。
这是给你的样品

${length}=   Get Count   ${vinrange}
FOR    ${i}    IN RANGE     1       ${length}
     Log      ${vinrange}[${i}]
     Log      ${sg}[${i}]
END

给出了机器人框架中For循环的一般上下文

FOR    ${item}    IN    @{ITEMS}
    ${item}    Arg2
END
范例-

FOR    ${index}    IN RANGE    42
    1st arg    ${index}
END

有一个
FOR
构造版本正好适合这种情况-同时迭代两个列表-即ZIP中的

它需要两个或多个iterable(如列表),并且在每次迭代中都会在同一索引处返回每个iterable的值

请注意,它将在较短的最后一个元素处停止(例如,如果它们的长度不同,则不会引发异常,也不会完全耗尽较长的列表)。因此,对于您的情况:

FOR    ${vinrange_element}    ${sg element}    IN ZIP     ${vinrange}       ${sg}
     Log      ${vinrange element} 
     Log      ${sg element}
END

我会就此争论;第一个示例代码将尝试将每个列表成员作为关键字执行,并将“Arg2”作为参数传递-这最好是一个关键字列表,非常不正常。第二个将不会在列表上迭代,但将生成数字0…41,并将其作为参数传递给关键字“1st arg”。