我很不解,这个失败与NameError
:Robotframework:如何评价从Javascript返回布尔值调用
${val} = Execute Javascript return sessionStorage.isMatching
Should Be True ${val}
日志输出是:
INFO Executing JavaScript:
INFO ${val} = true
KEYWORD BuiltIn . Should Be True ${val}
TRACE Arguments: [ 'true' ]
FAIL Evaluating expression 'true' failed: NameError: name 'true' is not defined
这不起作用既不:
Should Be True ${val} == true --> Evaluating expression 'true == true' failed: NameError: name 'true' is not defined
Should Be True ${val} == 'true' --> Evaluating expression 'true == 'true'' failed: NameError: name 'true' is not defined
Should Be True ${val} == "true" --> Evaluating expression 'true == "true"' failed: NameError: name 'true' is not defined
在阅读文档后,我了解到底层python不会评估JS true
as true
。然后我试图布尔转换为字符串在JS:
${val} = Execute Javascript return sessionStorage.isMatching.toString()
,但我得到了一个NameError
,再次。
我所知道的唯一的方式是这样的,看起来可怕的(因为我明确要转换一个布尔值布尔值):
${val} = Execute Javascript return sessionStorage.isMatching
${bool} = Convert To Boolean ${val}
Should Be True ${bool}
有没有更好的办法,在RF或JS来评价?
版本:
的Python 2.7.8
Robotframework 3.0
_robot在评估表达式_之前进行了字符串替换,这是一个非常不错的功能。而且我有很多行,比如'Run Keyword If'$ {exp}'=='None''。所以我应该知道 - 这一次没有想到。谢谢。 –