我们都知道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