Robotframework 如何在robot框架中访问嵌套列表的值
我想访问robot框架中嵌套列表[ICMPDU[0,1,2]]的值。我想在robot框架中访问列表中的元素2。下面是我的代码。下面的代码将我的输出设置为“是”[2]。有什么建议吗Robotframework 如何在robot框架中访问嵌套列表的值,robotframework,Robotframework,我想访问robot框架中嵌套列表[ICMPDU[0,1,2]]的值。我想在robot框架中访问列表中的元素2。下面是我的代码。下面的代码将我的输出设置为“是”[2]。有什么建议吗 *** Settings *** Library SeleniumLibrary Library Collections *** Variables *** @{ICMPDU_Val} 'Yes' 1 2 @{ICMPDU} ICMPDU
*** Settings ***
Library SeleniumLibrary
Library Collections
*** Variables ***
@{ICMPDU_Val} 'Yes' 1 2
@{ICMPDU} ICMPDU @{ICMPDU_Val}
*** Test Cases ***
Network_web_page
Log To Console @{ICMPDU}[1][2]
使用集合库:
*** Test Cases ***
Network_web_page
${li}= Get From List ${ICMPDU} 1
${res}= Get From List ${li} 2
给出输出:
${li}=[u'Yes',u'1',u'2']
${res}=2
变量如下:
*** Variables ***
@{ICMPDU_Val} 'Yes' 1 2
@{ICMPDU} ICMPDU ${ICMPDU_Val}
使用集合库:
*** Test Cases ***
Network_web_page
${li}= Get From List ${ICMPDU} 1
${res}= Get From List ${li} 2
给出输出:
${li}=[u'Yes',u'1',u'2']
${res}=2
变量如下:
*** Variables ***
@{ICMPDU_Val} 'Yes' 1 2
@{ICMPDU} ICMPDU ${ICMPDU_Val}
第一个问题是您没有在列表中创建列表 以这一行为例:
@{ICMPDU} ICMPDU @{ICMPDU_Val}
这将创建一个由四个值组成的列表:ICMPDU、Yes、1和2。这是因为当在关键字的右侧使用@时,列表将展开,每个元素都将成为关键字的参数
从重点中添加:
当变量用作${EXAMPLE}之类的标量时,其值将按原样使用。如果一个变量值是一个列表或类似列表的值,那么它也可以用作一个类似@{EXAMPLE}的列表变量。在这种情况下,单独的列表项作为参数传入
如果希望列表成为列表的第二个元素,则在定义变量时必须使用$而不是@:
@{ICMPDU} ICMPDU ${ICMPDU_Val}
第二个问题是,如果只有一个索引,那么访问数组元素的语法只能在大括号之外工作。如果需要更复杂的内容,例如[1][2],则需要在大括号内使用并移动索引
例如,${ICMPDU[1][2]}第一个问题是您没有在列表中创建列表 以这一行为例:
@{ICMPDU} ICMPDU @{ICMPDU_Val}
这将创建一个由四个值组成的列表:ICMPDU、Yes、1和2。这是因为当在关键字的右侧使用@时,列表将展开,每个元素都将成为关键字的参数
从重点中添加:
当变量用作${EXAMPLE}之类的标量时,其值将按原样使用。如果一个变量值是一个列表或类似列表的值,那么它也可以用作一个类似@{EXAMPLE}的列表变量。在这种情况下,单独的列表项作为参数传入
如果希望列表成为列表的第二个元素,则在定义变量时必须使用$而不是@:
@{ICMPDU} ICMPDU ${ICMPDU_Val}
第二个问题是,如果只有一个索引,那么访问数组元素的语法只能在大括号之外工作。如果需要更复杂的内容,例如[1][2],则需要在大括号内使用并移动索引
例如,${ICMPDU[1][2]}尝试了上面的代码,但Get-from-list只是返回列表中的第一个元素,而不是整个列表。获得以下输出:${li}='Yes'和${res}=e@Say.W在变量部分中,确保您使用的是@{ICMPDU}ICMPDU${ICMPDU\u Val}而不是@{ICMPDU}ICMPDU@{ICMPDU\u Val}。在第一个列表中嵌套第二个列表时使用$使上述代码完全不同,但是Get from list只是返回列表中的第一个元素,而不是整个列表。获得以下输出:${li}='Yes'和${res}=e@Say.W在变量部分中,确保您使用的是@{ICMPDU}ICMPDU${ICMPDU\u Val}而不是@{ICMPDU}ICMPDU@{ICMPDU\u Val}。在第一个列表中嵌套第二个列表时使用$会产生很大的不同,这就是为什么我说robotframework语言很糟糕。为什么他们创建它而不是仅仅使用Python?为什么?这就是为什么我说机器人框架语言糟透了。为什么他们创建它而不是仅仅使用Python?为什么?