Robot Framework(13)- RF 循環的詳細使用

如果你還想從頭學起Robot Framework,可以看看這個系列的文章哦!

//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 ;退出循環有兩個關鍵字

  1. exit for loop:強制退出循環
  2. exit for loop if:有條件的退出循環

測試結果

知識點

  • 如果要使用 exit for loop  時,我們可以藉助 run keyword if 或者 run keyword unless
  • 凡是關鍵字有  if ,它後面可以直接跟判斷表達式

 

繼續循環的栗子

相當於 Python 裡面的  continue ;繼續循環有兩個關鍵字

  1. Continue For Loop
  2. Continue For Loop If

測試結果