Robotframework:如何计算从Javascript调用返回的布尔值
Robotframework: How to evaluate boolean value returned from Javascript call
我很困惑这失败了,NameError
:
${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
评估为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中评估这一点?
版本:
蟒蛇 2.7.8
机器人框架 3.0
你从javascript得到的是文字字符串'true'
。要在表达式中使用它,您必须将其引号括起来:
Should be true '${val}` == 'true'
您得到错误NameError: name 'true' is not defined
的原因是机器人在计算表达式之前进行了字符串替换。
换句话说,机器人中的这个表达式:
should be true ${val} == 'true'
。与你在 Python 中键入以下内容相同:
if true == 'true':
...
Python看到true
,试图查找一个名为true
的变量的值,但没有找到任何这样的变量。因此,你得到了NameError
.
您可以在内置库的文档中找到对此的描述(强调我的):
当使用正常的 ${variable} 语法在表达式中使用变量时,在计算表达式之前会替换其值。这意味着表达式中使用的值将是变量值的字符串表示形式,而不是变量值本身。对于具有可以直接计算的字符串表示形式的数字和其他对象,这不是问题,但对于其他对象,行为取决于字符串表示形式。最重要的是,字符串必须始终用引号引起来,如果它们可以包含换行符,则必须用三引号引起来。
相关文章:
- 从javascript调用asp.net codebehind函数
- 如何使用javascript调用Php文件
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- 从Javascript调用Applet方法
- php javascript代码从javascript调用php函数
- 是否可以从html中的javascript调用.vbs文件
- 从javascript调用C#Web服务并使用它(json格式)
- 如何用javascript调用函数,然后在滚动事件中调用该函数的特定实例
- Sinon Spy不使用Javascript调用或应用程序
- 使用javascript调用javawebservice
- 从javascript调用服务器端的下拉列表onchange函数
- 单击按钮时,使用Javascript调用并返回值
- 函数1结束后,JavaScript调用函数2
- 对wcf服务的javascript调用
- 使用JavaScript调用Excel文件
- 从JavaScript调用JAX-WSWeb服务时参数为Null
- 从javascript调用codeigniter方法并传递数据
- 使用usinf-if语句javascript调用函数
- 通过Javascript调用php文件
- 从javascript调用flash点击事件