我很不解,這個失敗與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''。所以我應該知道 - 這一次沒有想到。謝謝。 –