進階 TextPattern——搜尋 / 選取 / 讀取屬性
ax_text 先前提供三種整段*讀取*(document / selection / visible 文字)。它無法**搜尋**子字串、
選取**找到的範圍,或讀取文字的**格式屬性——而這些正是斷言「錯誤字是紅色且粗體」或在輸入前
把游標 / 選取定位到匹配文字所需。本次把 TextPattern 從「傾印文字」擴充為「查詢與操作」文字。
find_control_text()——text是否出現在控制項中(TextPattern.FindText,搜尋真正的 內容,而非 OCR),select_control_text()——找到text並選取其範圍,讓接下來的按鍵取代它 (FindText + Select),control_text_attributes()——選取範圍的字型 / 顏色格式。
每個都是對可注入的 accessibility.backends.get_backend() 接縫的薄分派——可透過注入 fake
backend 進行無頭測試;真正的 UIA 呼叫位於 Windows 後端。不匯入 PySide6。
無頭 API
from je_auto_control import (find_control_text, select_control_text,
control_text_attributes, type_text)
if find_control_text("TODO", name="Editor"):
select_control_text("TODO", name="Editor") # 選取範圍現在涵蓋 "TODO"
type_text("DONE") # 取代它
control_text_attributes(name="Editor")
# {"font_name": "Consolas", "font_size": 11.0, "bold": True,
# "italic": False, "foreground_color": 16711680}
ignore_case``(預設 ``True)控制搜尋。控制項以 name / role / app_name /
automation_id 定位(與其他 TextPattern 讀取相同)。find_control_text /
select_control_text 回傳 bool;``control_text_attributes`` 回傳格式字典(範圍跨越混合
格式時某些值可能為 None),找不到則回傳 None。
執行器指令
AC_find_control_text / AC_select_control_text``(``text / ignore_case)與
AC_control_text_attributes``(``{found, attributes})。皆以對應的 ac_* MCP 工具
(find / attributes 為唯讀、select 為破壞性)及 Script Builder 指令(位於 Native UI 分類下)
形式提供。