要理清火語言 RPA 中 For 循環、ForEach 循環、While 循環 的區別,我們以「採集目標頁面(https://www.woshipm.com/u/1516977) 16 頁文章標題並保存到 Excel」為案例,逐一拆解它們的特性、適用場景和實現邏輯。
一、三大循環總覽對比
| 循環類型 | 核心邏輯 | 適用場景 | 案例適配性 |
|---|---|---|---|
| For 循環 | 基於次數 / 範圍循環(如 “循環 16 次”) | 已知明確循環次數(如固定頁數、列表長度) | 適合 “16 頁” 這類明確次數的場景 |
| ForEach 循環 | 基於集合元素遍歷(如 “遍歷列表中每個 URL”) | 需逐個處理集合內的元素(如列表、數組) | 適合後續 “遍歷採集到的標題列表” |
| While 循環 | 基於條件是否成立循環(如 “存在下一頁則循環”) | 未知循環次數,由條件動態控制(如翻頁按鈕是否存在) | 適合 “不確定頁數,靠元素存在性判斷” |
二、案例
場景:以目標頁面 https://www.woshipm.com/u/1516977 (共 16 頁)為例,分別用三種循環實現 “採集所有標題→保存到 Excel”。
(一)For 循環
核心邏輯:按 “固定次數” 循環 16 次,已知總頁數為 16,直接循環 16 次,每次採集當前頁標題 + 點擊下一頁。
實現步驟:
組件1:列表打開或新建,新建空列表用於用於存儲所有標題,默認list1。
組件2:打開瀏覽器,選擇瀏覽器類型。
組件3:瀏覽網頁,輸入需要採集的網址URL:https://www.woshipm.com/u/1516977
組件4:For循環,按固定次數循環。i賦值:1循環條件:i≤16單次循環結束執行:i++
組件5:獲取多元素信息/屬性值,獲取當前頁面所有標題,目標元素: .post--card__title, 屬性值:textContent,輸出到變量標題輸出到標題
組件6:列表合併,將所有標題進行合併到list1
組件7:條件判斷,最後一頁是沒有下一頁按鈕的,所以增加條件判斷,前15頁,點擊下一頁按鈕;第16頁,不執行鼠標/元素點擊。
組件8:鼠標/元素點擊,點擊下一頁按鈕
組件9:Excel打開文檔,新建空的Excel用於存儲數據。
組件10:Excel寫入內容,將list1的內容寫入Excel
組件11:關閉瀏覽器。
三大循環—For循環案例分享:
分享: https://www.huoyuyan.com/share.html?key=eyJjb2RlIjoibWZLTiIsI... 提取碼: mfKN
(二)While 循環
核心邏輯:不依賴固定次數,通過 “下一頁按鈕是否存在” 判斷是否繼續循環
實現步驟:
組件1:列表打開或新建,新建空列表用於用於存儲所有標題,默認list1。
組件2:打開瀏覽器,選擇瀏覽器類型。
組件3:瀏覽網頁,輸入需要採集的網址URL:https://www.woshipm.com/u/1516977
組件4:變量賦值,設置一個變量下一頁按鈕(布爾值類型變量,控制循環啓停),初始值:true(初始化為 “存在”,讓循環能啓動);
組件5:While循環,按照下一頁按鈕===true進行循環,採集當前頁文章標題
組件6:獲取多元素信息/屬性值,獲取當前頁的標題,輸出到變量:while循環標題
組件7:列表合併,將每一頁的while循環標題合併到list1
組件8:檢測元素是否存在,檢測下一頁按鈕是否存在,輸出到變量檢測元素是否存在
組件9:變量賦值,將上一步輸出的變量檢測元素是否存在,通過賦值到變量下一頁按鈕,進行條件判斷
組件10:條件判斷,如果變量下一頁按鈕存在,則進行點擊下一頁按鈕
組件11:鼠標/元素點擊,點擊下一頁按鈕
組件12:Excel打開文檔,新建空的Excel用於存儲數據。
組件13:Excel寫入內容,將list1的內容寫入Excel
組件14:關閉瀏覽器。
三大循環—While循環案例分享:
分享: https://www.huoyuyan.com/share.html?key=eyJjb2RlIjoiUHhDUCIsI... 提取碼: PxCP
(三)ForEach 循環
核心邏輯:遍歷 “採集到的 URL 列表” 逐個處理。先採集所有頁面的 URL(共 16 頁),再用 ForEach 遍歷每個 URL,單獨打開頁面採集標題。
實現步驟:
採集所有頁面 URL:先用 For循環 或 While 循環採集 16 頁的 URL,存儲到列表 list1,可以參見上兩個流程,這裏不做過多講解。
組件1:列表打開或新建,新建list2表格
組件2:ForEach 循環,遍歷list1中所有的URL網址
組件3:瀏覽網頁,打開當前 URL,遍歷item
組件4:獲取單元素信息/屬性值,獲取每篇文章的標題,輸出到變量文章標題
組件5:列表添加一項,將文章標題添加到list2
組件6:睡覺等待,這裏設置了暫定等待,等待頁面加載
組件7:Excel打開文檔,新建空的Excel用於存儲數據。
組件8:Excel寫入內容,將list2的內容寫入Excel
組件9:關閉瀏覽器。
三大循環—ForEach循環案例分享:
分享: https://www.huoyuyan.com/share.html?key=eyJhdXRvQ29kZSI6IkZhb... 提取碼: R7ew
三、案例總結:何時用哪種循環?
若頁數固定(如明確 16 頁)→ 選 For 循環,簡單直接。
若頁數不固定(或需自適應)→ 選 While 循環,靈活可靠。
若需逐個處理集合元素(如先拿 URL 再逐個採集)→ 選 ForEach 循環,解耦性強。