自動化操作 UI(使用者介面)其實有很多方案,會依照你的使用場景(桌面、Web、手機)而不同。

🖥️ 一、桌面應用(Windows / Mac)

1️⃣ 無程式 / 低程式方案

  • AutoHotkey

    • 適合 Windows
    • 用腳本控制滑鼠、鍵盤、視窗
    • 很輕量,適合快速自動化重複操作
  • Keyboard Maestro

    • Mac 專用
    • 視覺化流程,適合不想寫太多程式的人
  • Microsoft Power Automate Desktop

    • 微軟官方工具
    • 拖拉式流程(RPA)
    • 可自動點擊 UI、讀取畫面

2️⃣ 程式化方案(較強大)

  • PyAutoGUI

    • Python 控制滑鼠鍵盤
    • 可搭配影像辨識(找按鈕)
  • SikuliX

    • 用截圖辨識 UI 元素
    • 適合沒有 API 的軟體
  • WinAppDriver

    • 類似 Selenium,但用於 Windows App

🌐 二、Web UI 自動化(網頁)

這是最常見的場景 👇

  • Selenium

    • 最經典
    • 支援多語言(Python / Java / JS)
    • 可模擬點擊、輸入、登入等
  • Playwright

    • 新一代工具(比 Selenium 更穩定)
    • 支援多瀏覽器
    • 對動態網站更友好
  • Puppeteer

    • Node.js 專用
    • 控制 Chrome / Chromium

📱 三、手機 UI 自動化(Android / iOS)

  • Appium

    • 支援 Android + iOS
    • 類似 Selenium 的概念
  • UIAutomator

    • Android 原生工具
    • 穩定但偏技術

🤖 四、企業級 RPA(機器人流程自動化)

如果你是做商業流程(例如:自動填報表)👇

  • UiPath
  • Automation Anywhere
  • Blue Prism

👉 特點:

  • 幾乎不用寫程式
  • 可整合 Excel、ERP、Web、Email

🎯 怎麼選最適合?

需求 推薦
自動點擊滑鼠/鍵盤 AutoHotkey / PyAutoGUI
操作網站 Playwright(首推) / Selenium
操作沒有 API 的軟體 SikuliX
手機 App 自動化 Appium
商業流程自動化 Power Automate / UiPath

💡 小建議(很重要)

  • 如果是「網頁」👉 優先用 Playwright(穩很多)
  • 如果是「亂七八糟 UI」👉 用影像辨識(SikuliX)
  • 如果是「日常自動點擊」👉 AutoHotkey 最快上手


🎯 流程拆解

1️⃣ 從 Google Sheet 讀取一列資料(有 counter) 2️⃣ 貼到網頁輸入框並送出 3️⃣ 等待結果(10–15 秒) 4️⃣ 把結果寫回 Sheet 5️⃣ 換下一筆

👉 本質就是:資料迴圈 + 網頁操作 + 回寫


🚀 最推薦方案(穩定 & 可擴展)

🥇 Playwright + Google Sheets API

為什麼選這個?

  • 不靠滑鼠位置(不會因畫面跑掉壞掉)
  • 可直接抓網頁元素(比複製貼上穩)
  • 可以真正「讀寫 Google Sheet」(不用切視窗)

🧠 流程會變成這樣:

讀取 Sheet → 拿到第 N 筆文字
→ 打開網頁
→ 填入輸入框
→ 點送出
→ 等結果出現
→ 抓結果文字
→ 寫回 Sheet
→ N+1

👉 完全不需要: ❌ 手動複製 ❌ 切換視窗 ❌ 控制滑鼠


🧩 技術組合

1️⃣ 網頁操作

  • Playwright

2️⃣ Google Sheets 存取

  • Google Sheets API 或簡化:
  • gspread(Python 好用)

🧪 Python 範例(簡化版)

from playwright.sync_api import sync_playwright
import gspread

# 連接 Google Sheets
gc = gspread.service_account(filename="credentials.json")
sheet = gc.open("你的試算表").sheet1

rows = sheet.get_all_values()

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()

    page.goto("你的目標網站")

    for i, row in enumerate(rows[1:], start=2):  # 假設第一列是標題
        text = row[0]

        # 輸入文字
        page.fill("textarea", text)
        page.click("button:has-text('送出')")

        # 等待結果
        page.wait_for_timeout(15000)

        # 抓結果
        result = page.inner_text("結果的selector")

        # 寫回 Sheet
        sheet.update_cell(i, 2, result)

    browser.close()

⚠️ 如果你「不想寫程式」

也可以用這個👇

🟡 無程式方案(比較簡單但較不穩)

  • Microsoft Power Automate Desktop

👉 可以做到:

  • 自動複製 Sheet
  • 自動貼到網頁
  • 等待
  • 複製回來

👉 但缺點:

  • 容易壞(UI變就壞)
  • 需要畫面固定
  • 比較慢

🧠 關鍵建議(很重要)

❗ 不要用「滑鼠座標」做

(像 PyAutoGUI 那種) 👉 會很容易壞(解析度、視窗位置)


✅ 用「元素選擇器」

(Playwright / Selenium) 👉 穩定度差很多


⏱️ 等待方式要用「條件等待」

不要用死等 15 秒:

page.wait_for_selector("結果出現的元素")

👉 比固定等待快 + 穩