【问题标题】:pywinauto ribbon menu returns no control identifierspywinauto 功能区菜单不返回控件标识符
【发布时间】:2020-09-16 21:45:46
【问题描述】:

我正在尝试自动执行一系列与给定软件相关的任务。我已经设法使用键盘控件“实现”,但为了扩展脚本的复杂性,我需要访问功能区菜单。

到目前为止,我的代码如下:

windows = pwa.Desktop(backend="win32").windows()
running_windows = [window.window_text() for window in windows]

midas_title = ""
target_title = "Civil"

for window in running_windows:
    if target_title in window:
        midas_title += window
    else:
        pass

app = pwa.Application().connect(title=midas_title)
app[midas_title].set_focus()

app.MidasGenMainFrmClass['MIDAS/Civil'].print_control_identifiers()
app.MidasGenMainFrmClass['BCGPRibbonBar:40000000:8:10003:10'].print_control_identifiers()

BCGPRibbonBar:40000000:8:10003:10 的上/左和下/右坐标判断,这似乎是我想要访问的菜单,以便我可以单击此功能区中的“结果”按钮(我的最终目标) ,但是当我这样做 print_control_identifiers() 时,我得到的输出是这样的:

BCGPRibbonBar:40000000:8:10003:10 - 'MIDAS/Civil'    (L0, T0, R1920, B174)
['MIDAS/CivilBCGPRibbonBar:40000000:8:10003:10', 'BCGPRibbonBar:40000000:8:10003:10', 'MIDAS/Civil']
child_window(title="MIDAS/Civil", class_name="BCGPRibbonBar:40000000:8:10003:10")

我对此很陌生,但似乎丝带没有孩子?

Seems like I'm too new to embed images, but link here to what the ribbon menu looks like

And finally, link to the image of the inspector of the "Results" menu where I'd like to click

希望这是足够的信息,但如果有任何遗漏,请告诉我。

如果有人知道我可能做错了什么,那将非常有帮助。

【问题讨论】:

    标签: python automation pywinauto


    【解决方案1】:

    使用backend="uia" 代替backend="win32"。功能区控件仅对 UIA 后端可见。 Application(backend="uia") 也是必须的。

    【讨论】:

    • 当我使用Application(backend="uia") 时,我收到以下错误pywinauto.timings.TimeoutErrorpywinauto.findbestmatch.MatchError: Could not find 'Civil 2020 - [path_to_file_location ' in 'dict_keys([])' 使用backend="win32" 应用程序运行成功。
    • Application(backend="uia").connect(...) 也需要这个。请使用新的错误详细信息编辑您的问题。目前尚不清楚哪条线路确实失败了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多