我有这个代码,我试图循环通过类似的Xpath来获取他们的文本,并使用机器人农场工作将文本值添加到列表中
: 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}]
代码执行没有错误,但它没有打印列表,它在日志文件中记录结果如下
FOR $ {i} IN RANGE [2 | $ {count} +1]
我也附上截图。 Result file Image
请帮忙
答案 0 :(得分:2)
将列表称为对象时使用$
Append To List ${dbws_datapoints} ${j}
...
log ${dbws_datapoints}[${j}]
有关详细信息,请参阅机器人用户指南中的List Variables。
答案 1 :(得分:0)
虽然您链接的图片提供了上下文,但在您的问题中放置文本版本总是好的。此外,预计它将提供一个最小的例子,不依赖于未提供的项目。 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}]}