Для l oop с использованием роботизированной конструкции с 2 параметрами - PullRequest
3 голосов
/ 10 июля 2020

У меня есть две переменные списка @{vinrange} и @{sg} с одинаковыми размерами 4 enter image description here

I want to print into the LOG using the scalar ${VAR1} for each value from the list variable @{vinrange} and print using a second scalar ${VAR2} for each value from the list variable @{sg}

I have to assign both of them into the same loop, the ${VAR1}[1] has worked for the @{vinrange}, however, I don't know how to do for the second list variable @{sg}.

введите описание изображения здесь

Ответы [ 3 ]

3 голосов
/ 10 июля 2020

Попробуйте подсчитать свой список, используя Get Count, а не FOR LOOP, и войдите в журнал с помощью Iterator $ {i}. Вот образец для вас

${length}=   Get Count   ${vinrange}
FOR    ${i}    IN RANGE     1       ${length}
     Log      ${vinrange}[${i}]
     Log      ${sg}[${i}]
END
2 голосов
/ 10 июля 2020

Существует версия конструкции FOR именно для этой ситуации - для одновременного перебора двух списков - то есть со ссылкой IN ZIP, на документацию . Он ожидает двух или более итераций (например, списков), и на каждой итерации возвращает значения каждого с одним и тем же индексом.

Обратите внимание, что он остановится на последнем элементе меньшей длины (например, если их длина различна, он не вызовет исключения и не исчерпает более длинный список). Итак, для вашего случая:

FOR    ${vinrange_element}    ${sg element}    IN ZIP     ${vinrange}       ${sg}
     Log      ${vinrange element} 
     Log      ${sg element}
END
1 голос
/ 10 июля 2020

Generi c Контекст For L oop в структуре робота:

FOR    ${item}    IN    @{ITEMS}
    ${item}    Arg2
END

Пример-

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