If statement 条件失败时的机器人框架

If statement 条件失败时的机器人框架,if-statement,robotframework,If Statement,Robotframework,为什么当${orderrowlist}包含数据(它是一个列表列表)时,if子句不正确 我在这之前以及之后直接记录下订单行列表。第一次记录列出了预期的数据,而第二次记录时,orderrowlist的内容被tmp 当${orderrowlist}包含数据(它是一个列表列表)时,为什么if子句不正确 ${orderrowlist}=Run关键字如果'${orderrowlist}'=='${EMPTY}'设置变量${tmp} 当${orderrowlist}不为空时,为什么为false?因为非空列表不

为什么当${orderrowlist}包含数据(它是一个列表列表)时,if子句不正确

我在这之前以及之后直接记录下订单行列表。第一次记录列出了预期的数据,而第二次记录时,
orderrowlist
的内容被
tmp

当${orderrowlist}包含数据(它是一个列表列表)时,为什么if子句不正确

${orderrowlist}=Run关键字如果'${orderrowlist}'=='${EMPTY}'设置变量${tmp}

${orderrowlist}
不为空时,为什么为false?因为非空列表不等于空字符串

第一个日志记录列出了预期的数据,而在第二个日志记录中,orderrowlist的内容被替换为tmp的内容

这是因为您显式地将变量的值设置为关键字的结果


通常,要根据条件设置变量,您应该使用而不是。对于前者,您可以提供两个值:一个是条件为真,另一个是条件为假。如果希望变量保持不变,可以使用现有值作为“false”值

下面是一个例子:

*** Variables ***
${var}  original value

*** Test Cases ***
Example
    ${var}=  set variable if  '${var}' == '${EMPTY}'  new value  ${var}
    should be equal as strings  ${var}  original value

    ${var}=  set variable if  '${var}' == 'original value'  new value  ${var}
    should be equal as strings  ${var}  new value

那么我该如何表述呢?如果orderrowlist是空的,我想用tmp填充它,否则什么都没有。“为什么当${orderrowlist}不为空时它为假?因为非空列表不等于空字符串。”-然后,
orderrowlist
的内容不能被
tmp
替换-但它是!?
*** Variables ***
${var}  original value

*** Test Cases ***
Example
    ${var}=  set variable if  '${var}' == '${EMPTY}'  new value  ${var}
    should be equal as strings  ${var}  original value

    ${var}=  set variable if  '${var}' == 'original value'  new value  ${var}
    should be equal as strings  ${var}  new value