Как выполнить итерацию для l oop, пока не будет выполнено определенное условие? - PullRequest
0 голосов
/ 04 марта 2020

Мне нужно выполнить итерацию для l oop, пока не будет выполнено определенное условие в Robot Framework.

${counter}=  Set Variable  1

    :FOR    ${item}    IN RANGE    ${counter}
    \    Check condition
    \    ${counter} = ${counter} + 1

Возможно ли здесь увеличить значение переменной $ {counter}?

enter image description here

Ответы [ 2 ]

2 голосов
/ 04 марта 2020

Да.

${counter}=    Set Variable     1
FOR    ${item}    IN RANGE    1     20
    ${counter}=     Evaluate     ${counter} + 1
    Log To Console    ${counter}
    Exit For Loop If     ${counter} == 10
END

И для циклов FOR можно выйти, используя ключевые слова Exit For Loop или Exit For Loop If. Ключевые слова документации .

РЕДАКТИРОВАТЬ после комментариев.

0 голосов
/ 05 марта 2020

Вы спрашиваете некоторое время l oop. У робота нет времени l oop. Его просто нет поддержки, и робот, вероятно, не будет поддерживать его, по крайней мере, до 2021 года. Единственная циклическая конструкция - это для l oop.

У вас, кажется, есть отвращение к установке ограничения в 20, но должно быть практическое ограничение на число итераций, будь то 1000, 10000 или 1 миллион или более. Просто используйте FOR l oop, который имеет огромный верхний предел, и для всех намерений и целей, которые вы создали какое-то время, l oop.

FOR    ${item}    IN RANGE    1000000
    Exit FOR loop if  <some condition>
    ${counter}=  evaluate  $counter + 1
END

Хотя это выглядит не так красиво как While <some condition>, конечный результат будет таким же, если ваше условие станет истинным в какой-то момент до миллиона итераций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...