从机器人框架中的For循环中获取所有价值

时间:2018-11-01 21:08:08

标签: robotframework

嗨,我是机器人框架的新手, 我需要点击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 :(得分:1)

在这种情况下,您应该使用robotframework的Nest Variable。您可以在下面找到我的示例,它应该可以解决您当前的问题。

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

答案 1 :(得分:0)

您可以通过使用关键字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