pywinauto:占用多个应用程序窗口

时间:2010-05-13 20:06:30

标签: python window matching pywinauto

我有一个GUI应用程序,可以在桌面上创建许多类似的窗口。所有窗口都有相同的标题。我必须枚举所有具有相同标题的对话框,并对每个对话框进行一些测试。

如果我打电话:

dialog = app['Window Name']

pywinauto返回一个WindowSpecification对象,该对象与按名称访问控件一样有用。

我打电话的时候:

dialogs = app.windows_(title='Window Name')

pywinauto返回一个HwndWrapper实例列表,这些实例并没有那么有用。

如何获取具有指定标题但是作为WindowSpecification对象的窗口列表?

1 个答案:

答案 0 :(得分:4)

你不能真的。 WindowSpecification是符合所提供标准的所有窗口的单一规范。 当您使用WindowSpecification实例时,您经常与WindowSpecification正在为您查找和访问的HwndWrapper实例进行交互。

所以我认为答案是使用app.windows_()返回的HwndWrapper(类似于WindowSpecification.WrapperObject()返回的单个HwndWrapper

注意 - 如果你总是试图通过查看窗口中的特定控件来缩小窗口列表的范围 - 然后使用app ['Window Name'] ['Unique Control Name']。Parent()应该返回窗口

WindowSpecification和HwndWrapper之间的主要区别在于WindowSpecification尚不存在,而HwndWrapper实例反映了特定的底层窗口句柄。这允许WindowSpecification实现等待窗口的代码或检查它们是否存在。