Selector:UI 元素定位器
Selector 类用于在 Windows 窗口的 UI 树中检索控件。它支持极具灵活性的链式调用:你可以先过滤属性,接着跳转层级,最后直接在链条末端触发动作。
1. 导入模块
在使用选择器前,请确保已导入核心类:
# 导入选择器类
from ascript.windows.window import Selector
2. 初始化方法
🔍 创建选择器 Selector()
定义查找的起点。选择器会基于指定的窗口或标题开始构建 UI 树索引。
代码块:
# 初始化选择器实例
Selector(window=None, title=None, depth=0xFFFFFFFF)
参数详解:
- window (Window): 目标窗口对象。若提供此参数,查找将限制在该窗口范围内。
- title (str): 若
window为 None,则根据此标题正则表达式查找并关联窗口。 - depth (int): 初始搜索深度限制,默认搜索全层级。
3. 链式过滤方法
用于筛选具有特定特征的控件。字符串参数均支持 正则表达式。
🏷️ 基础标识过滤
.name()
代码块: selector.name(val)
参数详解:
- val (str): 匹配控件的
Name属性。
.type()
代码块: selector.type(val)
参数详解:
- val (str): 匹配控件类型名(如
"ButtonControl","EditControl")。
.res_id()
代码块: selector.res_id(val)
参数详解:
- val (str): 匹配控件的
AutomationId(资源 ID)。
.class_name()
代码块: selector.class_name(val)
参数详解:
- val (str): 匹配控件的系统类名
ClassName。
.handle()
代码块: selector.handle(val)
参数详解:
- val (int): 匹配控件的原生窗口句柄。
⚙️ 状态与内容过滤
.value()
代码块: selector.value(val)
参数详解:
- val (str): 匹配控件当前显示或持有的文本值。
.description()
代码块: selector.description(val)
参数详解:
- val (str): 匹配控件的
HelpText描述信息。
.visible()
代码块: selector.visible(val=True)
参数详解:
- val (bool): 过滤当前是否在屏幕内显示的元素。
.enabled()
代码块: selector.enabled(val=True)
参数详解:
- val (bool): 过滤控件是否处于启用(非禁用)状态。
.clickable()
代码块: selector.clickable(val=True)
参数详解:
- val (bool): 过滤是否支持指令级点击模式的控件。
4. 链式跳转与动作方法
在定位过程中改变搜索位置或直接触发交互。
⛓️ 关系跳转
🌿 子级跳转 .child()
代码块:
# 跳转到当前匹配节点的子节点
selector.child(index=None)
参数详解:
- index (int/None):
None选取所有子元素;正整数选取第 N 个(从 1 开始);负整数从后往前选取(如-1)。
🌳 父级跳转 .parent()
代码块:
# 向上跳回父级节点
selector.parent(n=1)
参数详解:
- n (int): 向上跳转的层级数。例如
2表示跳转到爷爷节点。
👬 兄弟跳转 .brother()
代码块:
# 跳转到同级兄弟节点
selector.brother(index=None)
参数详解:
- index (int): 目标兄弟节点在同级中的索引位置。