如果你還想從頭學起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