Robot Framework if条件失败

时间:2018-11-26 15:04:31

标签: if-statement robotframework

当$ {orderrowlist}包含数据(它是列表的列表)时,为什么这个if子句不成立?

${orderrowlist}=  Run Keyword If  '${orderrowlist}'== '${EMPTY}'  Set variable  ${tmp}

在此之前和之后我都登录orderrowlist。第一个日志记录列出了预期的数据,而第二个日志记录则将orderrowlist的内容替换为tmp的内容

1 个答案:

答案 0 :(得分:1)

  

当$ {orderrowlist}包含数据(它是列表的列表)时,为什么if子句不成立?

     

${orderrowlist}= Run Keyword If '${orderrowlist}'== '${EMPTY}' Set variable ${tmp}

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

  

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

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


通常,要根据条件设置变量,应使用Set variable if而不是Run keyword if。使用前者,您可以提供两个值:如果条件为true,则为一个,如果为false,则为一个。如果希望变量保持不变,则可以将现有值用作“ 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