"""脱敏 UIA element specs;复制到新技能后必须用真实拾取结果替换。""" from __future__ import annotations from dataclasses import dataclass from typing import Optional @dataclass(frozen=True) class WindowSpec: logical_name: str process_name: str class_name: str title: Optional[str] = None @dataclass(frozen=True) class ElementSpec: logical_name: str name: Optional[str] = None automation_id: Optional[str] = None control_type: Optional[str] = None class_name: Optional[str] = None ancestor_name: Optional[str] = None expected_count: int = 1 MAIN_WINDOW = WindowSpec("main_window", "WXWork", "WeWorkWindow", "企业微信") ADD_CUSTOMER_WINDOW = WindowSpec( "add_customer_window", "WXWork", "SearchExternalsWnd", "添加客户", ) CONTACTS_ENTRY = ElementSpec( "contacts_entry", name="org_op_new", control_type="TreeItem", ) SEARCH_INPUT = ElementSpec( "search_input", name="searchedit", ancestor_name="search_layout", )