【问题标题】:GUI automation with pywinauto. Double clicking item in a list with no name使用 pywinauto 实现 GUI 自动化。双击列表中没有名称的项目
【发布时间】:2017-10-27 11:41:45
【问题描述】:
我正在尝试使用 pywinauto 在 python 中自动化一个自制的 GUI。
我使用app = Application().start(...) 启动应用程序并使用dlg = app.top_window_() 获取窗口。
在下一步中,我想从列表中双击一个项目。但是我不知道怎么做。
我尝试使用 Inspect.exe。通过单击“导航到儿童”,我得到了没有名称的列表。再次单击“导航到子项”会显示我要单击的项目的名称。
那么,我该如何参考这个项目呢?
我想到了dlg.itemname.double_click(button='left')之类的东西?我只能找到他们按下菜单项的示例。
【问题讨论】:
标签:
python
user-interface
automation
pywinauto
【解决方案1】:
根据您的描述,我可以假设您使用 Application(backend="uia")(或必须使用),因为 Inspect.exe 使用 UI 自动化技术,该技术由 pywinauto 中的 UIA 后端支持。
是的,双击几乎是对的。这应该是这样的:
dlg.itemname.double_click_input(button='left')
# or
dlg.itemname.click_input(button='left', double=True)
我怎么知道?将项目检测为单独的控件是 UIA 后端的典型做法。
对于默认 Win32 后端(您可以在 Spy++ 工具中看到的),列表视图或列表框始终具有只能通过包装方法访问的虚拟项目,而不是作为单独的控件。