0

我想使用 Evaluate(机器人框架中的内置关键字)比较两个字符串。在这个测试中,我连接到路由器并尝试执行 cisco 命令(show route local),并且我想将此命令的输出与给定的字符串进行比较,以便执行 if 语句。

Write   show route local
${output} =    Read    delay=0.5s
${output1} =    Read    delay=0.5s
${status} =   Evaluate     "${output1}" = "% Ambiguous command:  "show route local""
IF   ${status}= True

     Write   show route local connected
     ${output} =    Read    delay=0.5s
     Set Suite Variable    ${G_stdout}    ${output}
ELSE 
    Log to Console   ${output1}
    Set Suite Variable    ${G_stdout}    ${output1}        
END

执行测试时出现此错误:

ModuleNotFoundError: No module named '"showroutelocal""'

4

1 回答 1

1

错误是因为你的字符串有多个连续的空格,所以机器人认为"show route local"是一个额外的参数,表示要导入的模块的名称。

要解决这个问题,您需要转义等式右侧字符串中的一个空格。你的表达也有其他问题。这是一个有效的版本:

${status}=  Evaluate  $output1 == '% Ambiguous command: \ "show route local"'

我改变的事情:

  • ==代替=
  • $output1而不是"${output1}", 因为${output1}它本身有双引号,这会导致语法错误
  • 右侧字符串周围的单引号,因为字符串本身包含双引号,这会导致语法错误
于 2021-04-28T17:34:04.730 回答