DAY 8 AUTOMATION TRAINING

跨系統登入自動化

參數化存取與狀態檢查

確保在自動化起始階段的穩定性

參考準則與實作基礎

本課程內容設計與實作邏輯,均嚴格參照並遵循:

《自動化作業工具操作手冊彙編》

我們將提煉手冊中的精華,探討如何將手動操作轉化為具備高容錯率的自動化腳本。

今日議程

  • 1 自動化的第一哩路: 登入流程的核心挑戰
  • 2 實作案例剖析: 全委保管系統結帳報表登入工具
  • 3 資訊安全護城河: 帳號密碼的參數化管理
  • 4 腳本穩定性關鍵: GUI 狀態檢查機制
  • 5 最佳實務總結: 打造堅固的自動化起點

自動化的第一哩路

為什麼「登入」往往是腳本最容易失敗的環節?

資安風險

帳號密碼直接寫死在程式碼中,造成極大的安全漏洞與維護困難。

時序問題

系統載入速度不一,腳本過早輸入資料導致「找不到元素」的報錯。

實作基礎案例解析

依據《自動化作業工具操作手冊彙編》之規範:

案例:全委保管系統結帳報表登入工具

核心目標: 自動化登入系統並產生對應報表功能清單。

我們將以此工具為藍本,探討其背後所需的自動化穩定性技術。

標準操作步驟拆解

從人工操作轉譯為機器邏輯:

  1. 開啟附檔: 啟動 `全委保管系統結帳報表登入工具.xlsm`。
  2. 確認帳號密碼: 系統驗證身份 (此處為自動化最需保護的節點)。
  3. 選擇功能並執行: GUI 互動與狀態等待。
  4. 產出清單: 驗證登入與操作結果是否成功。

帳號密碼的安全管理

絕對禁止:Hardcoding (寫死帳密)

錯誤做法

username = "admin"
password = "P@ssw0rd123"

任何人拿到腳本皆可登入,密碼變更需修改所有程式碼。

正確做法 (參數化)

cred = GetCredential("Sys_A")
Login(cred.User, cred.Pass)

自憑證管理員安全調用,代碼不留痕跡。

參數化存取實務

在實作「全委保管系統」這類具備機敏性的工具時,必須:

  • 使用作業系統內建的認證管理員 (Credential Manager) 或企業級密碼保險箱。
  • 在執行時期 (Runtime) 才透過變數將帳密注入輸入框。
  • 確保腳本日誌 (Log) 絕不紀錄密碼欄位的內容。

GUI 狀態檢查機制

定義: 腳本在執行下一步驟前,主動確認介面元素(如按鈕、輸入框、視窗標題)是否已經「準備好」接收指令的機制。

缺乏狀態檢查的自動化,就像是蒙上眼睛在操作電腦。

避免「車禍」的發生

網路延遲或系統繁忙時,登入畫面可能需要 3~5 秒才能完全繪製。

機器手速 > 畫面載入速度

如果自動化程式一啟動就立刻「貼上」帳密,極高機率會因為輸入框尚未出現而導致腳本崩潰 (Crash)。

狀態檢查策略:等待機制

死板等待 (Hard Sleep)

強制暫停 5 秒:Delay(5000)

  • 缺點:效率低,系統快時浪費時間;系統慢時 5 秒不夠依然報錯。

智慧等待 (Smart Wait)

動態偵測:WaitElementExist(btnLogin, timeout=10)

  • 優點:元素一出現立即執行,最多等 10 秒,兼具效率與穩定度。

登入工具的關鍵檢查點

以「全委保管系統結帳報表登入工具」為例,腳本應具備三個檢查點:

  1. 啟動驗證: 確認登入視窗已跳出,且「帳號」輸入框可被聚焦 (Focus)。
  2. 過程驗證: 輸入完畢點擊「執行」後,等待載入動畫消失。
  3. 結果驗證: 確認「產生對應功能清單」的畫面或特定按鈕出現,才代表登入成功。

異常捕捉 (Try-Catch)

即使有了完善的狀態檢查,仍須防範未知的彈出視窗(如系統公告、密碼過期警告)。

實作邏輯: 將登入流程包覆在 Try-Catch 區塊中。若在指定時間內檢查不到預期狀態,則觸發 Catch:截圖留存證據,並嘗試點擊「關閉」或安全地結束腳本,避免卡死資源。

確保自動化起始穩定性

登入是所有後續作業的基礎,必須做到:

零寫死: 帳密與環境變數參數化。

全動態: 放棄 Thread.Sleep,全面採用動態元素等待。

強驗證: 不只確認有送出按鈕,更要確認登入後的指標性元素。

總結

透過參照《自動化作業工具操作手冊彙編》,我們學習到:

成功將如「全委保管系統結帳報表登入工具」等手動作業轉為 RPA 時,參數化的安全管理智慧型的 GUI 狀態檢查,是決定腳本能否長久穩定運行、減少維護成本的兩大核心支柱。

Q & A

感謝您的聆聽

- Day 8: 跨系統登入自動化 -