RobotFramwork二次开发,微小改动RF,实现while关键字的功能

在RobotFramework中,默认仅支持for循环,不支持while循环。由于RF的执行逻辑,修改源代码steprunner.py,将for循环替换为while循环,并添加特殊关键字触发循环重置,成功实现了while循环的功能。这种方法通过改变执行逻辑,在RF中创建了一个死循环,而不会影响其他迭代。详细实现可参考提交的GitHub issue。
摘要由CSDN通过智能技术生成

我们都知道RF里只支持for循环,不支持while循环。或者说,不能造出一个死循环(实际上,while循环就是一个带判断条件的死循环)
而且两种通融的办法也做不到

li=[0,1,2]
for i in li:
  li.append(i)
  # break in some condition

在python里,这样做会导致无限循环。但在RF里,列表在循环前就解析定死,所以对列表的修改并不会影响循环的次数。使用生成器也不能做到

def gen():
  while 1: yield 0

for x in gen():
  ''' do something '''
  # break in some condition

因为生成器没有长度,会导致程序只循环一次就结束

后来发现,其实RF里的命令是一条条执行的,只需要把执行的逻辑修改了即可
在底层库robot\running\steprunner.py下,第33行附近的原文

    def run_steps(self, steps):
        errors 
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值