通过 pwinauto 访问 ListViewItem

问题描述

pywinauto 将我的 GUI 对象识别为列表视图。 gui 对象是一个网格,每个单元格中都有复选框。我正在尝试通过 ListView.items()[index],item 操作单击某个复选框。 (所有项目、复选框都被识别并驻留在 ListView.items() 下)。

问题在于某些项目对点击没有响应。 例如:以下代码仅成功点击了 60% 的项目。

我尝试以任何其他可能的方式点击,使用点击、选择、检查和通过点击使用 double=True 标志。

for item in self.curr_win.ListView5.items():
    item.click()

*self.curr_win.ListView5 是我的列表视图对象

  • 我需要一种方法来控制所有复选框,我将不胜感激!
  • GUI 对象的图片如下

enter image description here

解决方法

好的,对于“win32”后端,您可以将这些文档用于 ListViewWrapper_listview_item 对象:https://pywinauto.readthedocs.io/en/latest/code/pywinauto.controls.common_controls.html#pywinauto.controls.common_controls._listview_item

for item in self.curr_win.ListView5.items():
    item.click(where="check")
    # or
    # item.click_input(where="check")

Item 方法 .ensure_visible() 为不可见的项目自动滚动。

方法 .click_input() 的不同之处在于它移动真正的鼠标光标,可以在调试时使所有操作更加可见。