Получить все значение из цикла For в каркасе робота - PullRequest
0 голосов
/ 02 ноября 2018

Привет, я новичок в сфере роботов, Мне нужно нажать на некоторый элемент с xpath. Я получил номер элемента и хранится в переменной $ {element} когда я запускаю свой код, он находит $ {element} = 4

Теперь я хочу нажать на каждый элемент. Поэтому я попытался получить весь индекс в переменной, как $ {i1} до $ {i4} Результат должен дать мне это:

    ${i1} = 0
    ${i2} = 1
    ${i3} = 2
    ${i4} = 3

Я попробовал это

:FOR  ${i}  IN  RANGE   0   ${element}
\   log ${i}

Но это дает результат как

    20181101 19:21:07.269 : INFO : ${i}: 0
    20181101 19:21:08.269 : INFO : ${i}: 1
    20181101 19:21:09.269 : INFO : ${i}: 2
    20181101 19:21:10.269 : INFO : ${i}: 3

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

В вашем случае вам следует использовать Nest Variable of robotframework. Вы можете найти мой образец ниже, и он должен решить вашу текущую проблему.

test
     ${i}    Set Variable    i
    :FOR    ${n}    IN RANGE    4
    \   ${x}    Evaluate    ${n}+1
    \   Set Test Variable    ${${i}${x}}    ${n}
    log to console      ${i3}

и результат такой же, как у вас

$ {i1} = 0 $ {i2} = 1 $ {i3} = 2 $ {i4} = 3

0 голосов
/ 02 ноября 2018

То, что вы хотите сделать, может быть достигнуто с помощью ключевого слова Set (Test/Suite/Global) Variable. Это принимает два параметра и позволяет использовать переменные в переменных для создания имени.

*** Test Cases ***
TC
    ${element}    Set Variable    ${4}
    :FOR     ${i}     IN RANGE     0     ${element}
    \    Set Test Variable    ${i${i}}    ${i}

Это приводит к следующему журналу сообщений в КРАСНОМ.

Starting test: Folder.Forloop I.TC
20181102 07:41:39.010 : INFO : ${element} = 4
20181102 07:41:39.033 : INFO : ${i0} = 0
20181102 07:41:39.044 : INFO : ${i1} = 1
20181102 07:41:39.055 : INFO : ${i2} = 2
20181102 07:41:39.064 : INFO : ${i3} = 3
Ending test: Folder.Forloop I.TC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...