RobotFramework中None与null的使用

最近看到很多人问在RobotFramework中怎么比较None与null?或者问能不能用run keyword if比较变量与null、None啊?答案是肯定可以的,但是很多人忽略了空字符串。下面一一述来。

 

一、概念

1.空字符串:空字符串是指在内存中分配了存储空间,只是值的长度是0,在RobotFramework中表示方法:'';

2.None与null:None与null是指没有在内存中分配空间的,所以是没有值的。为什么None与null放一起说,都是一样的,只是在一些运行上可能不认None,但是null是基本都认的。在RobotFramework中会把null转换成Nome,下面会有例子说明。在RobotFramework中表示方法:${None}、${null},理论上不区分大小写,但是None如果写成none是不认的很奇怪。

 

二、例子

1.空字符串

(1)下面打开百度,取一下值,然后与null比较

可以看到结果:失败,失败的原因是空字符串不等于None,可以看到明明我写的null,但是结果却显示None,验证了我上面说的会把null转成None。

(2)来看看用run keyword if比较

结果很明显,是打印了456,因为空字符串是不等于null的。

(3)使用run keyword if比较空字符串

结果:是正确的,输出了123

 

2.None与NULL

None与null我就一起说了,可以看到最后一行,是拿None与null比较

结果:来看结果,都是输出了123,再次证明None与null是一样的,所以任选其一使用就行啦。

 

3.注意事项

None与null,一定要注意格式,如果直接写成了${test value} == null,这种比较是直接变量与null这个字符串比较,字符串的值是null,所以如果${test value}的值刚好等于null了,则会输出123

结果:可以看到输出了123,但是当${test value}的值不为null,则会输出456,因为这个不是与null对象比较,而是与字符串值为null的对象比较。

 

总结:对于空字符串与None比较,其最重要的一点就是要弄清楚,你比较的这个对象到底是空字符串还是None,不要看到没值就认为是None。就好像那句,你看到的不一定是真的。哈哈

 

你可能感兴趣的:(selenium)