Robot Framework中如何将自定义关键字作为IF判断条件?
解决Robot Framework中自定义布尔关键字作为IF条件的问题
首先给出正确的实现写法:
IF Is the Closed Message Page Present Login username password Close Browsers END
为什么这个写法有效?
Robot Framework的IF语句支持直接将返回布尔值的关键字作为判断条件,不需要额外的比较操作。你的自定义关键字Is the Closed Message Page Present已经返回True或False,直接放在IF后即可触发条件判断。
你之前写法的问题分析
IF Is the Closed Message Page Present = True:Robot Framework里=是赋值符号而非比较符号,而且多此一举——关键字本身返回的就是布尔值,无需再和True做比较。IF Is the Closed Message Page Present == 'True':关键字返回的是布尔类型的True/False,你却和字符串'True'做比较,两者类型不匹配,永远不会相等。IF 'Is the Closed Message Page Present' == 'True':这是把关键字的名称当成字符串和'True'对比,完全和关键字的实际返回值无关,条件必然不成立。- 先调用关键字再写
IF True:这种写法会无条件执行IF块内容,因为True是常量,和关键字的返回结果没有关联。
额外注意点
检查你的自定义关键字实现:如果self.CLOSED_TEXT.is_displayed是方法而非属性,需要加上括号self.CLOSED_TEXT.is_displayed(),否则返回的是方法对象而非布尔值,会导致条件判断失效。可以通过日志确认返回值是否为True/False。
内容的提问来源于stack exchange,提问作者Khursaid Ansari
相关产品推荐
相关产品推荐

