【问题标题】:No control identifiers using pywinauto没有使用 pywinauto 的控制标识符
【发布时间】:2020-12-19 09:14:04
【问题描述】:

我在使用 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]")

如何打印这个新窗口的所有控件标识符?

无论我试图找到什么,例如。 window2.AppDialog.Login.click() 我有pywinauto.findwindows.ElementNotFoundError

【问题讨论】:

    标签: python pywinauto


    【解决方案1】:

    您好像忘记在这一行中将 backend="uia" 用于 Application 对象:

    window2 = Application().connect(title="new-window")
    

    应该是这样的:

    window2 = Application(backend="uia").connect(title="new-window")
    

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

    【讨论】:

    • 添加backend="uia" 没有帮助。现在我有错误:pywinauto.findwindows.ElementNotFoundError: {'title': 'new-window', 'backend': 'uia', 'visible_only': False}
    • 调用 window2.windows() 并为每个返回的顶部窗口打印 .window_text()。
    【解决方案2】:

    试试这个方法:

        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 可以为您提供您关注的任何元素的所有详细信息..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      相关资源
      最近更新 更多