Pywinauto如何访问ListItem或ListItemWrapper下的第一个元素
Pywinauto ListItemWrapper子元素访问解决方案
方案1:直接通过cells()方法获取目标元素(推荐)
你调用display.cells()返回的结果本身就是按「行→列」结构组织的控件列表,你需要的第二行首个EditWrapper对应索引[1][0],可直接取用:
# 索引1对应第二行,索引0对应第一列元素 target_edit = display.cells()[1][0] # 执行点击操作 target_edit.click()
这个方案无需额外遍历子控件,是最高效的实现方式。
方案2:从ListItemWrapper对象中提取子元素
如果你已经通过get_item()拿到了ListItemWrapper对象,可通过以下两种方式获取首个子元素:
- 调用
children()方法获取所有子控件列表,按索引取第一个:
item = display.get_item(1) # 获取ListItem下所有直接子控件 item_children = item.children() # 索引0对应第一个子元素 target_edit = item_children[0] target_edit.click()
- 若子控件顺序不固定,可通过控件类型筛选:
item = display.get_item(1) # 筛选类型为Edit的第一个子控件 target_edit = item.child_window(control_type="Edit", found_index=0) target_edit.click()
注意事项
如果默认调用children()拿不到元素,可添加depth参数调整搜索深度,比如item.children(depth=2),适配不同结构的列表项控件。
内容的提问来源于stack exchange,提问作者bharatraj shetty
相关产品推荐
相关产品推荐

