0

我有这段代码,我试图循环通过 Similar Xpaths 来获取他们的文本并使用机器人农场工作将文本值添加到列表中

: FOR    ${i}    IN RANGE    2    ${count}+1
\  sleep  10s
\  ${j}   Get Text    //*[@id="stats"]/div/div/div[2]/div/div/div/div[${i}]/div[1]
\  Append To List     @{dbws_datapoints}    ${j}
\  log  @{dbws_datapoints}[${j}]

代码执行没有错误,但它没有打印列表,它在日志文件中记录如下结果

范围内的 ${i} [ 2 | ${count}+1 ]

我也附上截图。 结果文件图片

测试脚本图像

请帮忙

4

2 回答 2

4

$将列表称为对象时使用

Append To List    ${dbws_datapoints}  ${j}
...
log  ${dbws_datapoints}[${j}]

有关详细信息,请参阅机器人用户指南中的列出变量

于 2017-03-10T17:07:57.027 回答
1

尽管您链接到的图像提供了上下文,但将文本版本放在您的问题中总是好的。此外,预计将提供一个最小示例,该示例不依赖于未提供的项目。xpath 和 Get Text 关键字是此处的示例。

正如@Bryan Oakley 已经提到的那样,您问题的核心似乎是@{}应该是${}. 此外,您需要更新变量引用,因为这应该在花括号示例中:${var[2]}. 在您的示例中,您从 2 开始循环。当使用列表时,这会带来一个问题,因为添加到新列表中的项目总是从 0 开始。因此,添加了一条额外的行来计算列表中的项目。

下面的示例代码工作在日志文件中提供了所需的条目。

*** Settings ***
Library    String
Library    Collections

*** Variables ***
${count}              5
@{dbws_datapoints}    

*** Test Cases ***
FOR LOOP
    : FOR    ${i}    IN RANGE    0    ${count}
    \  ${j}   Get Text    ${i}
    \  ${listCount}    Get Length    ${dbws_datapoints}
    \    
    \  Run Keyword If    (${i}>2)     Append To List     ${dbws_datapoints}    ${j}
    \  Run Keyword If    (${i}>2)     Log To Console  ${dbws_datapoints[${listCount}]}

*** Keywords ***
Get Text
    [Arguments]    ${i}
    ${list}    Create List    aaa    bbb    ccc    ddd    eee
    [Return]    ${list[${i}]}
于 2017-03-10T20:07:28.647 回答