我对使用pywinauto的print_control_identifiers()有问题。
我通过打开测试应用程序来开始测试。
window1 = Application(backend="uia")
window1.start("C:/Program Files (x86)/.../App.exe")
window1.Dialog.print_control_identifiers()
window1.Dialog.Run.click()这是好的,我已经输出了这个对话框中的所有元素-所有按钮,框,标签等。在click()之后,我的对话框消失了,我需要连接到新窗口,所以:
window2 = Application().connect(title="new-window")
window2.AppDialog.print_control_identifiers()这就是我的问题:输出不包含任何元素,只是简单:
HwndWrapper[App.exe;App;c002ffc1-d144-4cd1-8ab0-afe5031cb9ea] - 'new-window' (L-8, T-8, R1928, B1058)
['new-window', 'HwndWrapper[App.exe;c002ffc1-d144-4cd1-8ab0-afe5031cb9ea]', 'new-windowHwndWrapper[App.exe;c002ffc1-d144-4cd1-8ab0-afe5031cb9ea]']
child_window(title="new-window", class_name="HwndWrapper[App.exe;c002ffc1-d144-4cd1-8ab0-afe5031cb9ea]")如何打印这个新窗口的所有控件标识?
无论我想要找什么,例如。我有pywinauto.findwindows.ElementNotFoundError。
发布于 2020-08-31 21:56:15
看起来你忘记了在这一行中为应用程序对象使用backend="uia":
window2 = Application().connect(title="new-window")看起来应该是这样的:
window2 = Application(backend="uia").connect(title="new-window")如果第一个窗口产生一个子进程,你必须连接到这个包含新窗口的进程。我们计划在将来通过Application对象实现子进程检测。现在应该手动处理它。
发布于 2020-09-04 02:11:40
尝试以下方法:
pid= application.process_from_module('toolName.exe')
app= Application(backend="uia").connect(process=pid)
handle = app.window(title_re="new-windowName")
handle.print_control_identifiers()或者,如果不需要显式打印,只需使用Inspect.exe获取所有详细信息。Inspect.exe可以为您提供您关注的任何元素的所有详细信息。
https://stackoverflow.com/questions/63667615
复制相似问题