清空再輸入欄位

可靠地設定欄位值,必須先*清空*既有內容再輸入新文字——否則自動化會附加到或破壞既有內容。框架分別有 write (可輸入,但對 emoji / CJK / 不在版面表內的字元會拋例外)與 set_clipboard / hotkey,但沒有單一的 「聚焦 → 清空 → 設值」基本元件,也沒有可輸入 write 無法處理之文字的貼上策略。本功能加入 Playwright 的 fill 慣用法。

plan_field_set() 建立決定性的操作計畫(純函式、可單元測試);:func:set_field_text 透過可注入的 sink 派發,因此可在無真實輸入下測試。不匯入 PySide6

無頭 API

from je_auto_control import set_field_text, plan_field_set

set_field_text("new value")                       # 全選、刪除、輸入
set_field_text("café 🚀", paste=True)             # 透過剪貼簿(Unicode 安全)
set_field_text("appended", clear="none")          # 不清空,直接輸入
set_field_text("値", paste=True, modifier="command")   # macOS

plan_field_set("hi")
# [{'op': 'hotkey', 'keys': ['ctrl', 'a']},
#  {'op': 'key', 'key': 'delete'},
#  {'op': 'type', 'text': 'hi'}]

clear"select_all"``(``modifier``+A Delete 的清空)或 ``"none"paste=True 透過剪貼簿 (modifier``+V)輸入文字——這是 ``write 無法輸入之 Unicode / emoji / CJK 的可靠途徑——而非逐鍵輸入。 modifier 為平台指令鍵("ctrl";macOS 用 "command")。未知的 clear 模式會拋出 ValueError

執行器命令

AC_set_field_text 接受 text 以及 clear / paste / modifier,並回傳 {ops, plan}。它以 MCP 工具 ac_set_field_text 以及 Script Builder 中 Keyboard 分類下的命令提供。