API: UIA List
列表(List)控件显示可选择的项目集合,常用于:
- 文件列表
- 用户列表
- 项目选择
- 数据表格
查找列表
说明:列表通常有名称或标题,可以通过名称查找。
函数签名:
python
find_by_name(name: str) -> UIElement | Nonelua
find_by_name(name: string) -> UIElement | nilpython
from wingman import uia
# 查找名为"文件列表"的列表控件
list_box = uia.find_by_name("文件列表")
if list_box:
print("找到列表控件")遍历列表项
获取所有列表项
说明:使用 get_children() 获取列表中的所有项目。
返回:列表项元素数组
python
from wingman import uia
list_box = uia.find_by_name("文件列表")
if list_box:
# 获取所有列表项
items = list_box["get_children"]()
print(f"共有 {len(items)} 个项目")
# 遍历打印
for i, item in enumerate(items):
info = item["get_info"]()
name = info.get('name', '(无名称)')
print(f" [{i}] {name}")检查选中状态
对列表容器调 get_selection() 可读取当前选中项(返回首个选中的列表元素;无选中返回 None/nil):
python
from wingman import uia
list_box = uia.find_list("文件列表")
if list_box:
selected = list_box["get_selection"]()
if selected:
print(f"当前选中: {selected['get_info']()['name']}")
else:
print("当前无选中项")
get_info()返回键中仍无is_selected字段;判断具体某一项是否被选中,可对比get_selection()返回元素与目标项。
选择列表项
点击选择
说明:通过点击列表项来选中它。
python
from wingman import uia
list_box = uia.find_by_name("文件列表")
if list_box:
items = list_box["get_children"]()
# 点击第三个项目(索引从 0 开始)
if len(items) > 2:
items[2]["click"]()
print("已点击第三个项目")按名称查找并选择
说明:直接按项目名称查找,然后点击选中。
python
from wingman import uia
# 直接按名称查找列表项
item = uia.find_by_name("目标文件.txt")
if item:
item["click"]()
print("已选中:目标文件.txt")
else:
print("未找到目标文件")双击列表项
说明:双击列表项通常用于打开或执行该项目的操作。
使用场景:
- 打开文件
- 查看详情
- 执行项目
python
from wingman import uia
list_box = uia.find_by_name("文件列表")
if list_box:
items = list_box["get_children"]()
# 双击打开项目
if len(items) > 2:
items[2]["double_click"]()
print("已双击打开第三个项目")可用接口
查找列表
| Python 函数 | Lua 函数 | 说明 | 参数 |
|---|---|---|---|
find_by_name(name) | find_by_name(name) | 按名称查找 | name - 列表名称 |
find_by_id(id) | find_by_id(id) | 按 AutomationId 查找 | id - AutomationId |
列表操作
| Python 方法 | Lua 方法 | 说明 |
|---|---|---|
get_children() | :get_children() | 获取所有列表项 |
click() | :click() | 点击列表项 |
double_click() | :double_click() | 双击列表项 |
get_info() | :get_info() | 获取列表项信息 |
select() 编程选中列表项(2026-10-09 落地,不动鼠标):
python
from wingman import uia
item = uia.find_list_item("目标文件.txt")
if item:
item["select"]()编程选中要求目标控件支持 SelectionItem 模式(Windows)/ 可设置 AXSelected(macOS);不支持的控件返回
false,此时请回退用click()。