新功能 (2026-06-19) — 編寫與除錯
兩項編寫期工具,皆為純標準庫,並走完整五層(facade、AC_* 執行器
指令、MCP 工具、Script Builder):原生 UI 的**元素庫**(object
repository)與動作清單的**步進除錯器 / 追蹤器**。
元素庫
把原生 UI 定位器以友善名稱存一次、到處重用——這就是 RPA 經典的
object repository。流程改以 "login.submit" 引用,而不必在每個
呼叫點重複 name="Submit", role="button";UI 變動只需改一處:
from je_auto_control import ElementRepository
repo = ElementRepository("app.objects.json")
repo.save("login.submit", name="Submit", role="button")
repo.save("login.user", role="edit", app_name="MyApp")
repo.click("login.submit") # 解析並點擊實際元素
info = repo.find_info("login.user") # {found, name, role, center}
定位器是一組小的 accessibility 過濾條件(name / role /
app_name);解析時透過 accessibility 後端找到實際元素。儲存為 JSON
檔、跨平台可用;解析需要平台的 accessibility 後端。
執行器 / MCP 指令:AC_element_save / AC_element_find /
AC_element_click / AC_element_remove / AC_element_list
(以及對應的 ac_element_* MCP 工具)。
步進除錯器與追蹤器
把動作清單一次跑一個指令,具備中斷點、單步與即時變數檢視。步進時重用
同一個執行器實例,因此腳本變數(${name} 插值、AC_set_var …)
會像正常執行一樣在各步之間保留:
from je_auto_control import FlowDebugger
dbg = FlowDebugger(actions, breakpoints=[3])
dbg.continue_() # 跑到中斷點
dbg.variables() # 檢視即時變數
dbg.step() # 一次一個指令
dbg.run_to_end()
無狀態的一次性形式 trace_actions() 會跑完清單(或用 dry_run
只做規劃),回傳每步的 {index, command, result} 追蹤——對應
AC_debug_trace / ac_debug_trace:
from je_auto_control import trace_actions
plan = trace_actions(actions, dry_run=True) # 只規劃不執行
trace = trace_actions(actions) # 執行並追蹤