簡體   English   中英

沒有使用 pywinauto 的控件標識符

[英]No control identifiers using pywinauto

我有使用 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

看起來您忘記在這一行中為 Application 對象使用backend="uia"

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

它應該是這樣的:

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

如果第一個窗口產生一個子進程,你必須連接到這個包含新窗口的進程。 我們計划在未來通過 Application 對象實現子進程檢測。 現在應該手動處理。

試試這個方法:

    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 可以為您提供您關注的任何元素的所有詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM