You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pywinauto在资源管理器及程序保存对话框中切换目录?

使用pywinauto操作第三方触发的“另存为”对话框:切换目录与控件定位

一、通过输入路径切换目录的实现方法

Windows标准“另存为”对话框支持直接输入路径跳转,用pywinauto实现的核心步骤如下:

  1. 定位对话框窗口
    必须使用UIA后端(Win32后端无法完整识别对话框控件)定位目标窗口,示例代码:

    from pywinauto import Desktop
    
    # 标题根据实际场景调整,比如Word的另存为标题可能是"另存为"或包含文件名
    save_dialog = Desktop(backend="uia").window(title="另存为")
    
  2. 定位路径输入控件
    对话框中可直接输入路径的控件,常见定位方式有两种:

    • 通过固定控件ID定位(Windows标准对话框的路径输入框ID为1148):
      path_input = save_dialog.Edit.control_id(1148)
      
    • 通过控件类型定位(如果ID不生效):
      path_input = save_dialog.child_window(control_type="Edit", found_index=0)
      
  3. 输入路径并确认
    输入目标路径后按回车,即可切换到指定目录:

    path_input.set_text("D:\\目标文件夹\\子目录")
    path_input.type_keys("{ENTER}")
    

二、解决print_control_identifiers()找不到控件的问题

默认情况下pywinauto使用Win32后端,无法识别“另存为”对话框中的UIA控件。解决方法:

  • 切换到UIA后端后再打印控件树:
    save_dialog = Desktop(backend="uia").window(title="另存为")
    save_dialog.print_control_identifiers()
    
    此时就能看到路径输入框的完整信息,它的核心标识:
    • 控件类型:Edit
    • 自动化ID:1148(标准对话框通用)
    • 标题会显示当前路径

内容的提问来源于stack exchange,提问作者merfy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:20:26