Robotframework 如何在robot框架中访问嵌套列表的值

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

我想访问robot框架中嵌套列表[ICMPDU[0,1,2]]的值。我想在robot框架中访问列表中的元素2。下面是我的代码。下面的代码将我的输出设置为“是”[2]。有什么建议吗

*** 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?为什么?