Python 2.7 在Robot框架中将项添加到列表变量

Python 2.7 在Robot框架中将项添加到列表变量,python-2.7,selenium,robotframework,selenium2library,Python 2.7,Selenium,Robotframework,Selenium2library,我有这段代码,我试图通过类似的XPath循环获取它们的文本,并使用robot farmwork将文本值添加到列表中 : 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} \

我有这段代码,我试图通过类似的XPath循环获取它们的文本,并使用robot farmwork将文本值添加到列表中

: 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}]
代码执行时没有错误,但它没有打印列表,而是将结果记录在日志文件中,如下所示

对于范围为[2 |${count}+1]的${i}

我附上截图以及。


将列表作为对象引用时,请帮助使用
$

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

有关更多信息,请参阅《robot用户指南》。

将列表作为对象引用时,请使用
$

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

有关更多信息,请参阅《robot用户指南》。

尽管您链接到的图像提供了上下文,但最好在问题中添加文本版本。此外,预计它将提供一个最小的示例,该示例不依赖于未提供的项目。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}]}

虽然链接到的图像提供了上下文,但在问题中加入文本版本总是好的。此外,预计它将提供一个最小的示例,该示例不依赖于未提供的项目。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}]}

我试过了,但它仍然没有记录列表,而是显示范围为[2${count}+1]的${I},如上面问题中所附的屏幕截图(resuf文件图像)所示。我试过了,但它仍然没有记录列表,而是显示范围为[2${count}+1]的${I},如所附的屏幕截图(resuf文件图像)所示在我上面的问题中,非常感谢。。这两个建议都很有帮助。非常感谢。。这两个建议都很有帮助。