首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有使用pywinauto的控制标识符

没有使用pywinauto的控制标识符
EN

Stack Overflow用户
提问于 2020-08-31 16:47:36
回答 2查看 424关注 0票数 0

我对使用pywinauto的print_control_identifiers()有问题。

我通过打开测试应用程序来开始测试。

代码语言:javascript
复制
window1 = Application(backend="uia")
window1.start("C:/Program Files (x86)/.../App.exe")
window1.Dialog.print_control_identifiers()
window1.Dialog.Run.click()

这是好的,我已经输出了这个对话框中的所有元素-所有按钮,框,标签等。在click()之后,我的对话框消失了,我需要连接到新窗口,所以:

代码语言:javascript
复制
window2 = Application().connect(title="new-window")
window2.AppDialog.print_control_identifiers()

这就是我的问题:输出不包含任何元素,只是简单:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2020-08-31 21:56:15

看起来你忘记了在这一行中为应用程序对象使用backend="uia"

代码语言:javascript
复制
window2 = Application().connect(title="new-window")

看起来应该是这样的:

代码语言:javascript
复制
window2 = Application(backend="uia").connect(title="new-window")

如果第一个窗口产生一个子进程,你必须连接到这个包含新窗口的进程。我们计划在将来通过Application对象实现子进程检测。现在应该手动处理它。

票数 0
EN

Stack Overflow用户

发布于 2020-09-04 02:11:40

尝试以下方法:

代码语言:javascript
复制
    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可以为您提供您关注的任何元素的所有详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63667615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档