[30 天打造 RPA 自動化流程]Power Automate Desktop:克服常見網頁元素抓取錯誤 — RPA Challenge(1)

陳宣諭 Hsuan Yu Chen
4 min readSep 29, 2024

--

一、前言

在 RPA 的世界中,處理網頁的動態元素通常被視為最難處理的功能,特別是在面對 RPA Challenge 這樣的動態網頁時,一般的 UI 元素抓取方式經常會出現錯誤。這篇文章我們就要來解決這類網站的問題,而由於此網站的複雜度較高,為清楚介紹每個細節步驟內容,會將文章拆分為兩篇進行說明。這篇文章會先進行挑戰項目的背景簡述,以及大致如何拆分此支自動化流程;下一篇文章則會針對「selector」的這個 RPA 功能進行詳細說明。

二、示範情境:RPA Challenge 的網頁自動化挑戰

RPA Challenge 是一個設計用來測試和提升 RPA 技術的網站,是業界在設計 RPA Selector 練習場景時會第一個想到的經典網站,原因是該網站的 UI 元素是浮動 ID,無法透過一般的方法完成元素抓取。

該網站的左側有個 DOWNLOAD EXCEL 的字樣需先下載 Excel 檔案(內容如下圖),當下載完成後點下 Start 就會開始挑戰。網站會動態於網站右側生成網頁表單,並要求挑戰者依據 Excel 的內容自動化輸入資料,共有 10 份表單需填寫送出,10 份表單內容均填寫正確後,系統會顯示 100% 正確率。

而當每提交一次表單時,表單的欄位順序和 ID 都會發生變動,因此有別於一般的 RPA 網頁爬蟲技術,需要透過 RPA 的 selector 抓取方式才能正確讀到不同欄位。

透過圖片可以更好的觀察差異之處。比較下方兩張圖片,雖然同是 Address 的欄位,但經過網頁重整後,不光位置改變(紅框處),連同 ID 也改變了(圖片右側劃記黃色螢光處)。

三、實作流程設計

其實要完成 RPA Challenge 有非常多方法可達成,可以建立新資料表直接放入抓好的 UI 元素的標籤,也可以透過以下較好懂的方式一步步為 Excel 欄位建立不同的名稱,不變的共同點在於後方流程都是要克服浮動 ID 的特性,透過 selector 將值輸入到正確欄位。

1. 啟動新的 Chrome
-
將連結導至 RPA Challenge 的網站

2. 啟動 Excel
-
打開 RPA Challenge 提供的 Excel 檔案

3. 讀取自 Excel 工作表
-
讀取該 Excel 的儲存格值
- 可點選進階,並勾選「第一個行範圍包含欄名稱」,第一行就不會被讀取為資料表的資料

4. 按一下網頁上的連結
-
點選左側的 Start

5. 設定變數
-
設定 loop 的 Index 值以套用至 For each

6. For each

  • 設定變數
    -
    分別針對 7 個表單欄位設定變數
    - 變數的填寫值:ExcelData[Index][0]
    意思是從 Excel 讀取的資料表格數據中,取出第幾行的值(Index),並搭配指定抓取的第幾行->0 代表 Excel 第一列的內容,1 代表 Excel 第二列的內容
  • 填入網頁上的文字欄位
    -
    根據這 7 個變數填入對應的欄位
  • 設定變數
    -
    值:Index +1,以自動進入下一個 loop 的表單填寫
  • 按一下網頁上的連結
    -
    點選送出表單的 Submit

四、小結

本文介紹了 RPA Challenge 的網站特性及其應用場景,以及若要成功自動化挑戰 RPA Challenge 這個網站,可以如何撰寫腳本流程。下一篇文章,我會延續這篇文章的內容,並進一步分享 Selector 在 RPA Challenge,Power Automate Desktop 的具體使用方式,可以如何克服浮動 ID 的抓取失敗問題。

--

--

陳宣諭 Hsuan Yu Chen
0 Followers

Learning and Sharing. 曾服務於 Teach for Taiwan、花蓮縣公立國小、線上課程產業及軟體教育業,專注於科技、管理與教育。 #Program Manager at AppWorks School #I empower others to teach.