Robot Framework(13)- RF 循环的详细使用
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1770899.html
前言
- RF用 :FOR 或 FOR 来实现循环,没有 While 循环
- :FOR 是过时的循环写法,建议写 FOR
FOR 的栗子
忽略爆红,因为新的 FOR 关键字,插件还不能识别
测试结果
知识点
- 如果 IN 后面跟的是一个 List 变量,必须用 @{list} 的格式哦!
- 循环体内的语句需要缩进两个空格以上
- 如果 IN 后面接的值太多,可以换行,需要通过 ... 来表示接着上一行的内容
- 注意: FOR 和 IN 都不能小写哦
:FOR 旧格式循环的栗子
可以看到没爆红啦,因为插件只支持旧格式...
测试结果
知识点
- 和 FOR 不同,不需要在循环结束后写 END
- 但重点来了:循环体内,每一行开头都需要写 \ 【因为在RF 3.2 中, :FOR 不再起作用,如果要支持旧格式,就需要 \ 进行转义】
- 注意::FOR 可以小写,但是 IN 不可以(官网说 IN 也可以小写,但是试了一遍不可以哦)
range 的用法
在Python 中,我们有常用的 range() 方法,RF 也有类似的用法
测试结果
enumerate 的用法
在 Python 中,有 enumerate() 函数,遍历列表时可以追踪每个元素的索引位置;在 RF 中通过 IN ENUMERATE 关键字来实现类似的效果
测试结果
知识点
- IN ENUMERATE 是连在一起用的哦,中间最多一个空格,并且是大小写敏感的,不可以写成小写!
- 使用 IN ENUMERATE ,需要用单独的一个变量去接住索引值,如 ${index}
- 如果只用一个变量的话(如第三个栗子),那么每次循环返回的就是一个列表,第一个元素就是索引值,可以通过下标 [0] 去获取;后面的值就是列表的值
遍历 Dict 变量
测试结果
知识点
- 循环 Dict 变量时,可以通过 ${key} 和 ${value} 分别获取每次循环的键和值
- IN ENUMERATE 也可以获取键值对的索引值,但起始值是 1
栗子二:只用一个 ${item} 来获取键值对
测试结果
知识点
- 如果只用一个 ${item} 变量来获取键值对的话,它将是一个键值对列表(只有两个值), ${item}[0] 是键, ${item}[1] 是值
- 再加上 IN ENUMERATE 的话,它就是一个索引+键值对列表(有三个值), ${item}[0] 是索引值
退出循环的栗子
相当于 Python 里面的 break ;退出循环有两个关键字
- exit for loop:强制退出循环
- exit for loop if:有条件的退出循环
测试结果
知识点
- 如果要使用 exit for loop 时,我们可以借助 run keyword if 或者 run keyword unless
- 凡是关键字有 if ,它后面可以直接跟判断表达式
继续循环的栗子
相当于 Python 里面的 continue ;继续循环有两个关键字
- Continue For Loop
- Continue For Loop If
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具