前边在讲解和分享 notepad++ 编辑器的输入内容->文件->另存为...之后弹出文件选择框,就有小伙伴或者童鞋们私信问,为什么不继续操作了呢?不要着急,今天就给大家分享和讲解如何继续操作:主要是修改文件名,然后点击 “保存” 按钮,操作弹出文件选择框的这个知识点。
弹出文件选择框是一种用户界面组件,允许用户从文件系统中选择一个或多个文件。这种对话框通常包含一个路径框、文件名、文件类型等元素,用户可以通过图形界面方便地浏览文件夹、选择文件。如下图所示(今天主要讲解的是操作:①文件名和②保存按钮):

因为宏哥的系统是 Windows11,所以这里为了减少不必要的麻烦主要还是通过 Windows 安装的 Notepad++ 编辑器进行演示和实践。
大致测试场景:启动电脑安装的 Notepad++ 编辑器,然后在编辑器中输入 “北京 - 宏哥” 内容后,点击编辑器的 “文件->另存为...” 后,弹出文件选择框,修改文件名为:北京宏哥,最后点击 “保存” 按钮,保存文件。
1.为了小伙伴或者童鞋们看的清楚,以及方便宏哥演示,宏哥这里还是采用前边两种方法的代码打印,如下图所示:

2.打印内容,如下:
D:\Python\python.exe D:/Demo/test.py
Control Identifiers:
Dialog - '*新文件 1 - Notepad++' (L-9, T-9, R1929, B1029)
['Dialog', '*新文件 1 - Notepad++', '*新文件 1 - Notepad++Dialog', 'Dialog0', 'Dialog1']
child_window(title="*新文件 1 - Notepad++", control_type="Window")
|
| Dialog - '另存为' (L745, T135, R1705, B735)
| ['Dialog2', '另存为', '另存为Dialog']
| child_window(title="另存为", control_type="Window")
| |
| | Pane - '' (L754, T238, R1696, B649)
| | ['文件名:Pane', 'Pane', 'Pane0', 'Pane1']
| | |
| | | Toolbar - '命令模块' (L754, T238, R1696, B277)
| | | ['命令模块', '命令模块Toolbar', 'Toolbar', 'Toolbar0', 'Toolbar1']
| | | child_window(title="命令模块", auto_id="FolderBandModuleInner", control_type="ToolBar")
| | | |
| | | | Button - '帮助(&H)' (L1649, T241, R1685, B273)
| | | | ['帮助(&H)Button', 'Button', '帮助(&H)', 'Button0', 'Button1']
| | | | child_window(title="帮助(&H)", auto_id="HelpButton", control_type="Button")
| | | |
| | | | SplitButton - '详细信息' (L1571, T241, R1639, B273)
| | | | ['详细信息', 'SplitButton', '详细信息SplitButton', 'SplitButton0', 'SplitButton1']
| | | | child_window(title="详细信息", auto_id="ViewControl", control_type="SplitButton")
| | | | |
| | | | | Button - '视图滑块' (L1606, T241, R1626, B273)
| | | | | ['视图滑块', 'Button2', '视图滑块Button']
| | | | | child_window(title="视图滑块", auto_id="SplitMenuButton", control_type="Button")
| | | |
| | | | Button - '组织' (L758, T241, R838, B273)
| | | | ['组织\u200b\u200bButton', 'Button3', '组织\u200b\u200b']
| | | | child_window(title="组织", auto_id="{7DDC1264-7E4D-4F74-BBC0-D191987C8D0F}", control_type="Button")
| | | |
| | | | Button - '新建文件夹' (L838, T241, R949, B273)
| | | | ['新建\u200b\u200b文件夹\u200b\u200b', 'Button4', '新建\u200b\u200b文件夹\u200b\u200bButton']
| | | | child_window(title="新建文件夹", auto_id="{E44616AD-6DF1-4B94-85A4-E465AE8A19DB}", control_type="Button")
| | |
| | | Pane - '控制项宿主' (L757, T277, R949, B524)
| | | ['控制项宿主', 'Pane2', '控制项宿主Pane']
| | | child_window(title="控制项宿主", auto_id="ProperTreeHost", control_type="Pane")
| | | |
| | | | TreeView - '导航窗格' (L757, T277, R949, B524)
| | | | ['导航窗格', 'TreeView', '导航窗格TreeView', 'TreeView0', 'TreeView1']
| | | | child_window(title="导航窗格", auto_id="100", control_type="Tree")
| | | | |
| | | | | ScrollBar - '垂直滚动条' (L928, T277, R949, B524)
| | | | | ['垂直滚动条', '垂直滚动条ScrollBar', 'ScrollBar', 'ScrollBar0', 'ScrollBar1']
| | | | | child_window(title="垂直滚动条", auto_id="NonClientVerticalScrollBar", control_type="ScrollBar")
| | | | | |
| | | | | | Button - '上一行' (L928, T277, R949, B298)
| | | | | | ['上一行', '上一行Button', 'Button5', '上一行0', '上一行1', '上一行Button0', '上一行Button1']
| | | | | | child_window(title="上一行", auto_id="UpButton", control_type="Button")
| | | | | |
| | | | | | Button - '向上翻页' (L928, T298, R949, B438)
| | | | | | ['向上翻页', '向上翻页Button', 'Button6']
| | | | | | child_window(title="向上翻页", auto_id="UpPageButton", control_type="Button")
| | | | | |
| | | | | | Thumb - '位置' (L928, T438, R949, B492)
| | | | | | ['位置Thumb', 'Thumb', '位置', '位置Thumb0', '位置Thumb1', 'Thumb0', 'Thumb1', '位置0', '位置1']
| | | | | | child_window(title="位置", auto_id="ScrollbarThumb", control_type="Thumb")
| | | | | |
| | | | | | Button - '向下翻页' (L928, T492, R949, B503)
| | | | | | ['向下翻页', 'Button7', '向下翻页Button', '向下翻页0', '向下翻页1', '向下翻页Button0', '向下翻页Button1']
| | | | | | child_window(title="向下翻页", auto_id="DownPageButton", control_type="Button")
| | | | | |
| | | | | | Button - '下一行' (L928, T503, R949, B524)
| | | | | | ['下一行', 'Button8', '下一行Button', '下一行0', '下一行1', '下一行Button0', '下一行Button1']
| | | | | | child_window(title="下一行", auto_id="DownButton", control_type="Button")
| | | | |
| | | | | TreeItem - '桌面' (L0, T0, R0, B0)
| | | | | ['桌面TreeItem', '桌面', 'TreeItem', 'TreeItem0', 'TreeItem1']
| | | | | child_window(title="桌面", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '主文件夹' (L0, T0, R0, B0)
| | | | | | ['主文件夹TreeItem', '主文件夹', 'TreeItem2']
| | | | | | child_window(title="主文件夹", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '图库' (L0, T0, R0, B0)
| | | | | | ['图库', '图库TreeItem', 'TreeItem3']
| | | | | | child_window(title="图库", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '快速访问开始 - 桌面 (已固定)' (L0, T0, R0, B0)
| | | | | | ['快速访问开始 - 桌面 (已固定)', 'TreeItem4', '快速访问开始 - 桌面 (已固定)TreeItem']
| | | | | | child_window(title="快速访问开始 - 桌面 (已固定)", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '下载 (已固定)' (L0, T0, R0, B0)
| | | | | | ['下载 (已固定)TreeItem', 'TreeItem5', '下载 (已固定)']
| | | | | | child_window(title="下载 (已固定)", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '文档 (已固定)' (L0, T0, R0, B0)
| | | | | | ['文档 (已固定)TreeItem', '文档 (已固定)', 'TreeItem6']
| | | | | | child_window(title="文档 (已固定)", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '图片 (已固定)' (L0, T0, R0, B0)
| | | | | | ['图片 (已固定)TreeItem', '图片 (已固定)', 'TreeItem7']
| | | | | | child_window(title="图片 (已固定)", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '音乐 (已固定)' (L0, T0, R0, B0)
| | | | | | ['音乐 (已固定)', '音乐 (已固定)TreeItem', 'TreeItem8']
| | | | | | child_window(title="音乐 (已固定)", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '视频 (已固定)' (L0, T0, R0, B0)
| | | | | | ['视频 (已固定)', '视频 (已固定)TreeItem', 'TreeItem9']
| | | | | | child_window(title="视频 (已固定)", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '算法测试数据' (L0, T0, R0, B0)
| | | | | | ['算法测试数据', '算法测试数据TreeItem', 'TreeItem10']
| | | | | | child_window(title="算法测试数据", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '福田' (L0, T0, R0, B0)
| | | | | | ['福田', '福田TreeItem', 'TreeItem11']
| | | | | | child_window(title="福田", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '恩龙' (L0, T0, R0, B0)
| | | | | | ['TreeItem12', '恩龙TreeItem', '恩龙']
| | | | | | child_window(title="恩龙", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '快速访问结束 - Demo' (L0, T0, R0, B0)
| | | | | | ['快速访问结束 - Demo', '快速访问结束 - DemoTreeItem', 'TreeItem13']
| | | | | | child_window(title="快速访问结束 - Demo", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - 'WPS云盘' (L820, T317, R887, B357)
| | | | | | ['WPS云盘TreeItem', 'WPS云盘', 'TreeItem14']
| | | | | | child_window(title="WPS云盘", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '此电脑' (L820, T357, R869, B397)
| | | | | | ['此电脑', '此电脑TreeItem', 'TreeItem15', '此电脑0', '此电脑1']
| | | | | | child_window(title="此电脑", control_type="TreeItem")
| | | | | | |
| | | | | | | TreeItem - 'Windows (C:)' (L830, T397, R928, B437)
| | | | | | | ['TreeItem16', 'Windows (C:)TreeItem', 'Windows (C:)']
| | | | | | | child_window(title="Windows (C:)", control_type="TreeItem")
| | | | | | |
| | | | | | | TreeItem - 'Data (D:)' (L830, T437, R896, B477)
| | | | | | | ['Data (D:)TreeItem', 'Data (D:)', 'TreeItem17', 'Data (D:)0', 'Data (D:)1']
| | | | | | | child_window(title="Data (D:)", control_type="TreeItem")
| | | | | |
| | | | | | TreeItem - '网络' (L820, T477, R854, B517)
| | | | | | ['网络', '网络TreeItem', 'TreeItem18']
| | | | | | child_window(title="网络", control_type="TreeItem")
| | |
| | | Pane - 'Shell 文件夹视图' (L954, T277, R1696, B524)
| | | ['Shell 文件夹视图', 'Shell 文件夹视图Pane', 'Pane3']
| | | child_window(title="Shell 文件夹视图", auto_id="listview", control_type="Pane")
| | | |
| | | | ListBox - '项目视图' (L954, T277, R1696, B524)
| | | | ['ListBox', '项目视图ListBox', '项目视图']
| | | | child_window(title="项目视图", control_type="List")
| | | | |
| | | | | ScrollBar - '水平' (L954, T503, R1675, B524)
| | | | | ['水平', 'ScrollBar2', '水平ScrollBar']
| | | | | child_window(title="水平", auto_id="HorizontalScrollBar", control_type="ScrollBar")
| | | | | |
| | | | | | Button - '左移一列' (L954, T503, R975, B524)
| | | | | | ['Button9', '左移一列Button', '左移一列']
| | | | | | child_window(title="左移一列", auto_id="UpButton", control_type="Button")
| | | | | |
| | | | | | Thumb - '位置' (L975, T503, R1600, B524)
| | | | | | ['位置Thumb2', 'Thumb2', '位置2']
| | | | | | child_window(title="位置", auto_id="ScrollbarThumb", control_type="Thumb")
| | | | | |
| | | | | | Button - '向右翻页' (L1600, T503, R1654, B524)
| | | | | | ['向右翻页', '向右翻页Button', 'Button10']
| | | | | | child_window(title="向右翻页", auto_id="DownPageButton", control_type="Button")
| | | | | |
| | | | | | Button - '右移一列' (L1654, T503, R1675, B524)
| | | | | | ['右移一列Button', 'Button11', '右移一列']
| | | | | | child_window(title="右移一列", auto_id="DownButton", control_type="Button")
| | | | |
| | | | | ScrollBar - '垂直' (L1675, T277, R1696, B503)
| | | | | ['垂直', '垂直ScrollBar', 'ScrollBar3']
| | | | | child_window(title="垂直", auto_id="VerticalScrollBar", control_type="ScrollBar")
| | | | | |
| | | | | | Button - '上一行' (L1675, T277, R1696, B298)
| | | | | | ['上一行2', '上一行Button2', 'Button12']
| | | | | | child_window(title="上一行", auto_id="UpButton", control_type="Button")
| | | | | |
| | | | | | Thumb - '位置' (L1675, T298, R1696, B365)
| | | | | | ['位置Thumb3', 'Thumb3', '位置3']
| | | | | | child_window(title="位置", auto_id="ScrollbarThumb", control_type="Thumb")
| | | | | |
| | | | | | Button - '向下翻页' (L1675, T365, R1696, B482)
| | | | | | ['向下翻页2', 'Button13', '向下翻页Button2']
| | | | | | child_window(title="向下翻页", auto_id="DownPageButton", control_type="Button")
| | | | | |
| | | | | | Button - '下一行' (L1675, T482, R1696, B503)
| | | | | | ['下一行2', 'Button14', '下一行Button2']
| | | | | | child_window(title="下一行", auto_id="DownButton", control_type="Button")
| | | | |
| | | | | Header - '标题' (L954, T277, R1737, B309)
| | | | | ['标题', 'Header', '标题Header']
| | | | | child_window(title="标题", control_type="Header")
| | | | | |
| | | | | | SplitButton - '名称' (L954, T277, R1294, B309)
| | | | | | ['名称', '名称SplitButton', 'SplitButton2']
| | | | | | child_window(title="名称", auto_id="System.ItemNameDisplay", control_type="SplitButton")
| | | | | | |
| | | | | | | Button - '筛选器下拉列表' (L1274, T277, R1293, B309)
| | | | | | | ['筛选器下拉列表Button', 'Button15', '筛选器下拉列表', '筛选器下拉列表Button0', '筛选器下拉列表Button1', '筛选器下拉列表0', '筛选器下拉列表1']
| | | | | | | child_window(title="筛选器下拉列表", auto_id="DropDown", control_type="Button")
| | | | | |
| | | | | | SplitButton - '修改日期' (L1294, T277, R1474, B309)
| | | | | | ['修改日期', 'SplitButton3', '修改日期SplitButton']
| | | | | | child_window(title="修改日期", auto_id="System.DateModified", control_type="SplitButton")
| | | | | | |
| | | | | | | Button - '筛选器下拉列表' (L1454, T277, R1473, B309)
| | | | | | | ['筛选器下拉列表Button2', 'Button16', '筛选器下拉列表2']
| | | | | | | child_window(title="筛选器下拉列表", auto_id="DropDown", control_type="Button")
| | | | | |
| | | | | | SplitButton - '类型' (L1474, T277, R1624, B309)
| | | | | | ['类型SplitButton', '类型', 'SplitButton4']
| | | | | | child_window(title="类型", auto_id="System.ItemTypeText", control_type="SplitButton")
| | | | | | |
| | | | | | | Button - '筛选器下拉列表' (L1604, T277, R1623, B309)
| | | | | | | ['筛选器下拉列表Button3', 'Button17', '筛选器下拉列表3']
| | | | | | | child_window(title="筛选器下拉列表", auto_id="DropDown", control_type="Button")
| | | | | |
| | | | | | SplitButton - '大小' (L1624, T277, R1724, B309)
| | | | | | ['SplitButton5', '大小SplitButton', '大小']
| | | | | | child_window(title="大小", auto_id="System.Size", control_type="SplitButton")
| | | | | | |
| | | | | | | Button - '筛选器下拉列表' (L1704, T277, R1723, B309)
| | | | | | | ['筛选器下拉列表Button4', 'Button18', '筛选器下拉列表4']
| | | | | | | child_window(title="筛选器下拉列表", auto_id="DropDown", control_type="Button")
| | | | |
| | | | | ListItem - '.idea' (L972, T317, R1719, B348)
| | | | | ['ListItem', '.idea', '.ideaListItem', 'ListItem0', 'ListItem1']
| | | | | child_window(title=".idea", auto_id="0", control_type="ListItem")
| | | | | |
| | | | | | Edit - '名称' (L1000, T321, R1294, B345)
| | | | | | ['Edit', 'Edit0', 'Edit1']
| | | | | | child_window(title="名称", auto_id="System.ItemNameDisplay", control_type="Edit")
| | | | | |
| | | | | | Edit - '修改日期' (L1294, T321, R1474, B345)
| | | | | | ['Edit2']
| | | | | | child_window(title="修改日期", auto_id="System.DateModified", control_type="Edit")
| | | | | |
| | | | | | Edit - '类型' (L1474, T321, R1624, B345)
| | | | | | ['Edit3']
| | | | | | child_window(title="类型", auto_id="System.ItemTypeText", control_type="Edit")
| | | | | |
| | | | | | Edit - '大小' (L1624, T321, R1724, B345)
| | | | | | ['Edit4']
| | | | | | child_window(title="大小", auto_id="System.Size", control_type="Edit")
| | | | |
| | | | | ListItem - '.lingma' (L972, T354, R1719, B385)
| | | | | ['.lingma', 'ListItem2', '.lingmaListItem']
| | | | | child_window(title=".lingma", auto_id="1", control_type="ListItem")
| | | | | |
| | | | | | Edit - '名称' (L1000, T358, R1294, B382)
| | | | | | ['Edit5']
| | | | | | child_window(title="名称", auto_id="System.ItemNameDisplay", control_type="Edit")
| | | | | |
| | | | | | Edit - '修改日期' (L1294, T358, R1474, B382)
| | | | | | ['Edit6']
| | | | | | child_window(title="修改日期", auto_id="System.DateModified", control_type="Edit")
| | | | | |
| | | | | | Edit - '类型' (L1474, T358, R1624, B382)
| | | | | | ['Edit7']
| | | | | | child_window(title="类型", auto_id="System.ItemTypeText", control_type="Edit")
| | | | | |
| | | | | | Edit - '大小' (L1624, T358, R1724, B382)
| | | | | | ['Edit8']
| | | | | | child_window(title="大小", auto_id="System.Size", control_type="Edit")
| | | | |
| | | | | ListItem - '__pycache__' (L972, T391, R1719, B422)
| | | | | ['ListItem3', '__pycache__ListItem', '__pycache__']
| | | | | child_window(title="__pycache__", auto_id="2", control_type="ListItem")
| | | | | |
| | | | | | Edit - '名称' (L1000, T395, R1294, B419)
| | | | | | ['Edit9']
| | | | | | child_window(title="名称", auto_id="System.ItemNameDisplay", control_type="Edit")
| | | | | |
| | | | | | Edit - '修改日期' (L1294, T395, R1474, B419)
| | | | | | ['Edit10']
| | | | | | child_window(title="修改日期", auto_id="System.DateModified", control_type="Edit")
| | | | | |
| | | | | | Edit - '类型' (L1474, T395, R1624, B419)
| | | | | | ['Edit11']
| | | | | | child_window(title="类型", auto_id="System.ItemTypeText", control_type="Edit")
| | | | | |
| | | | | | Edit - '大小' (L1624, T395, R1724, B419)
| | | | | | ['Edit12']
| | | | | | child_window(title="大小", auto_id="System.Size", control_type="Edit")
| | | | |
| | | | | ListItem - 'config' (L972, T428, R1719, B459)
| | | | | ['ListItem4', 'configListItem', 'config']
| | | | | child_window(title="config", auto_id="3", control_type="ListItem")
| | | | | |
| | | | | | Edit - '名称' (L1000, T432, R1294, B456)
| | | | | | ['Edit13']
| | | | | | child_window(title="名称", auto_id="System.ItemNameDisplay", control_type="Edit")
| | | | | |
| | | | | | Edit - '修改日期' (L1294, T432, R1474, B456)
| | | | | | ['Edit14']
| | | | | | child_window(title="修改日期", auto_id="System.DateModified", control_type="Edit")
| | | | | |
| | | | | | Edit - '类型' (L1474, T432, R1624, B456)
| | | | | | ['Edit15']
| | | | | | child_window(title="类型", auto_id="System.ItemTypeText", control_type="Edit")
| | | | | |
| | | | | | Edit - '大小' (L1624, T432, R1724, B456)
| | | | | | ['Edit16']
| | | | | | child_window(title="大小", auto_id="System.Size", control_type="Edit")
| | | | |
| | | | | ListItem - 'framework' (L972, T465, R1719, B496)
| | | | | ['ListItem5', 'frameworkListItem', 'framework']
| | | | | child_window(title="framework", auto_id="4", control_type="ListItem")
| | | | | |
| | | | | | Edit - '名称' (L1000, T469, R1294, B493)
| | | | | | ['Edit17']
| | | | | | child_window(title="名称", auto_id="System.ItemNameDisplay", control_type="Edit")
| | | | | |
| | | | | | Edit - '修改日期' (L1294, T469, R1474, B493)
| | | | | | ['Edit18']
| | | | | | child_window(title="修改日期", auto_id="System.DateModified", control_type="Edit")
| | | | | |
| | | | | | Edit - '类型' (L1474, T469, R1624, B493)
| | | | | | ['Edit19']
| | | | | | child_window(title="类型", auto_id="System.ItemTypeText", control_type="Edit")
| | | | | |
| | | | | | Edit - '大小' (L1624, T469, R1724, B493)
| | | | | | ['Edit20']
| | | | | | child_window(title="大小", auto_id="System.Size", control_type="Edit")
| | | | |
| | | | | ListItem - 'games' (L972, T502, R1719, B533)
| | | | | ['gamesListItem', 'ListItem6', 'games']
| | | | | child_window(title="games", auto_id="5", control_type="ListItem")
| | | | | |
| | | | | | Edit - '名称' (L1000, T506, R1294, B530)
| | | | | | ['Edit21']
| | | | | | child_window(title="名称", auto_id="System.ItemNameDisplay", control_type="Edit")
| | | | | |
| | | | | | Edit - '修改日期' (L1294, T506, R1474, B530)
| | | | | | ['Edit22']
| | | | | | child_window(title="修改日期", auto_id="System.DateModified", control_type="Edit")
| | | | | |
| | | | | | Edit - '类型' (L1474, T506, R1624, B530)
| | | | | | ['Edit23']
| | | | | | child_window(title="类型", auto_id="System.ItemTypeText", control_type="Edit")
| | | | | |
| | | | | | Edit - '大小' (L1624, T506, R1724, B530)
| | | | | | ['Edit24']
| | | | | | child_window(title="大小", auto_id="System.Size", control_type="Edit")
| | |
| | | Static - '文件名:' (L767, T537, R911, B565)
| | | ['Static', '文件名:Static', '文件名:', '文件名:0', '文件名:1', 'Static0', 'Static1']
| | | child_window(title="文件名:", auto_id="SaveDialogLabel", control_type="Text")
| | |
| | | ComboBox - '文件名:' (L911, T537, R1690, B565)
| | | ['文件名:2', 'ComboBox', '文件名:ComboBox', 'ComboBox0', 'ComboBox1']
| | | child_window(title="文件名:", auto_id="FileNameControlHost", control_type="ComboBox")
| | | |
| | | | Edit - '文件名:' (L914, T540, R1666, B562)
| | | | ['Edit25', '文件名:Edit']
| | | | child_window(title="文件名:", auto_id="1001", control_type="Edit")
| | | |
| | | | Button - '打开' (L1670, T538, R1689, B564)
| | | | ['打开Button', 'Button19', '打开', '打开Button0', '打开Button1', '打开0', '打开1']
| | | | child_window(title="打开", auto_id="DropDown", control_type="Button")
| | |
| | | Static - '保存类型:' (L767, T568, R911, B596)
| | | ['Static2', '保存类型:Static', '保存类型:', '保存类型:0', '保存类型:1']
| | | child_window(title="保存类型:", auto_id="SaveDialogLabel", control_type="Text")
| | |
| | | ComboBox - '保存类型:' (L911, T568, R1690, B596)
| | | ['保存类型:ComboBox', '保存类型:2', 'ComboBox2']
| | | child_window(title="保存类型:", auto_id="FileTypeControlHost", control_type="ComboBox")
| | | |
| | | | Static - '' (L3, T3, R755, B25)
| | | | ['Static3']
| | | |
| | | | Button - '打开' (L1670, T569, R1689, B595)
| | | | ['打开Button2', 'Button20', '打开2']
| | | | child_window(title="打开", auto_id="DropDown", control_type="Button")
| | |
| | | TreeView - '保存字段' (L767, T604, R1683, B643)
| | | ['保存字段', '保存字段TreeView', 'TreeView2']
| | | child_window(title="保存字段", auto_id="SaveDialogPreviewMetadataInner", control_type="Tree")
| | |
| | | TreeView - '应用程序控件' (L0, T0, R0, B0)
| | | ['应用程序控件TreeView', '应用程序控件', 'TreeView3']
| | | child_window(title="应用程序控件", auto_id="AppControlsModuleInner", control_type="Tree")
| |
| | Toolbar - '' (L764, T679, R879, B705)
| | ['保存类型:Toolbar', 'Toolbar2']
| | |
| | | Button - '隐藏文件夹' (L764, T679, R867, B705)
| | | ['隐藏文件夹Button', 'Button21', '隐藏文件夹']
| | | child_window(title="隐藏文件夹", control_type="Button")
| |
| | CheckBox - '追加扩展名' (L1235, T677, R1423, B700)
| | ['追加扩展名CheckBox', 'CheckBox', '追加扩展名']
| | child_window(title="追加扩展名", control_type="CheckBox")
| |
| | Button - '保存(S)' (L1438, T672, R1548, B705)
| | ['保存(S)', '保存(S)Button', 'Button22']
| | child_window(title="保存(S)", auto_id="1", control_type="Button")
| |
| | Button - '取消' (L1563, T672, R1673, B705)
| | ['取消Button', '取消', 'Button23']
| | child_window(title="取消", auto_id="2", control_type="Button")
| |
| | Thumb - '' (L1675, T705, R1696, B726)
| | ['Thumb4', '保存类型:Thumb']
| |
| | Pane - '' (L754, T173, R1696, B238)
| | ['Pane4']
| | child_window(auto_id="40965", control_type="Pane")
| | |
| | | Pane - '' (L754, T182, R880, B226)
| | | ['Pane5']
| | | |
| | | | Toolbar - '导航按钮' (L759, T185, R880, B226)
| | | | ['导航按钮', '导航按钮Toolbar', 'Toolbar3']
| | | | child_window(title="导航按钮", control_type="ToolBar")
| | | | |
| | | | | Button - '后退 (Alt + 向左键)' (L759, T185, R803, B226)
| | | | | ['后退 (Alt + 向左键)Button', '后退 (Alt + 向左键)', 'Button24']
| | | | | child_window(title="后退 (Alt + 向左键)", control_type="Button")
| | | | |
| | | | | Button - '前进 (Alt + 向右键)' (L803, T185, R847, B226)
| | | | | ['前进 (Alt + 向右键)Button', 'Button25', '前进 (Alt + 向右键)']
| | | | | child_window(title="前进 (Alt + 向右键)", control_type="Button")
| | | | |
| | | | | Button - '最近浏览的位置' (L847, T185, R873, B226)
| | | | | ['最近浏览的位置Button', '最近浏览的位置', 'Button26']
| | | | | child_window(title="最近浏览的位置", control_type="Button")
| | |
| | | Pane - '' (L880, T181, R925, B226)
| | | ['Pane6']
| | | |
| | | | Toolbar - '上区段' (L880, T185, R925, B230)
| | | | ['上区段', 'Toolbar4', '上区段Toolbar']
| | | | child_window(title="上区段", control_type="ToolBar")
| | | | |
| | | | | Button - '上移到“Data (D:)”(Alt + 向上键)' (L880, T185, R921, B226)
| | | | | ['上移到“Data (D:)”(Alt + 向上键)', '上移到“Data (D:)”(Alt + 向上键)Button', 'Button27']
| | | | | child_window(title="上移到“Data (D:)”(Alt + 向上键)", control_type="Button")
| | |
| | | Pane - '' (L925, T173, R1420, B235)
| | | ['Pane7']
| | | child_window(auto_id="41477", control_type="Pane")
| | | |
| | | | Progress - '正在加载' (L927, T183, R1418, B227)
| | | | ['正在加载', 'Progress', '正在加载Progress']
| | | | child_window(title="正在加载", control_type="ProgressBar")
| | | | |
| | | | | Pane - '' (L927, T183, R1324, B227)
| | | | | ['Pane8']
| | | | | |
| | | | | | Toolbar - '地址: D:\Demo' (L935, T183, R1324, B227)
| | | | | | ['地址: D:\\Demo', 'Toolbar5', '地址: D:\\DemoToolbar']
| | | | | | child_window(title="地址: D:\Demo", auto_id="1001", control_type="ToolBar")
| | | | | | |
| | | | | | | SplitButton - '所有位置' (L935, T183, R978, B226)
| | | | | | | ['所有位置SplitButton', 'SplitButton6', '所有位置']
| | | | | | | child_window(title="所有位置", control_type="SplitButton")
| | | | | | |
| | | | | | | SplitButton - '此电脑' (L978, T183, R1050, B226)
| | | | | | | ['此电脑2', '此电脑SplitButton', 'SplitButton7']
| | | | | | | child_window(title="此电脑", control_type="SplitButton")
| | | | | | |
| | | | | | | SplitButton - 'Data (D:)' (L1050, T183, R1139, B226)
| | | | | | | ['SplitButton8', 'Data (D:)SplitButton', 'Data (D:)2']
| | | | | | | child_window(title="Data (D:)", control_type="SplitButton")
| | | | | | |
| | | | | | | SplitButton - 'Demo' (L1139, T183, R1210, B226)
| | | | | | | ['\u200eDemoSplitButton', 'SplitButton9', '\u200eDemo']
| | | | | | | child_window(title="Demo", control_type="SplitButton")
| | | | |
| | | | | Toolbar - '地址区段' (L1324, T183, R1418, B227)
| | | | | ['地址区段Toolbar', '地址区段', 'Toolbar6']
| | | | | child_window(title="地址区段", control_type="ToolBar")
| | | | | |
| | | | | | Button - '上一个位置' (L1324, T183, R1371, B230)
| | | | | | ['上一个位置Button', 'Button28', '上一个位置']
| | | | | | child_window(title="上一个位置", control_type="Button")
| | | | | |
| | | | | | Button - '刷新“Demo”(F5)' (L1371, T183, R1418, B230)
| | | | | | ['刷新“Demo”(F5)', 'Button29', '刷新“Demo”(F5)Button']
| | | | | | child_window(title="刷新“Demo”(F5)", control_type="Button")
| | |
| | | Pane - '' (L1424, T203, R1430, B204)
| | | ['Pane9']
| | |
| | | Pane - '' (L1430, T179, R1685, B229)
| | | ['Pane10']
| | | |
| | | | Pane - '' (L1430, T182, R1685, B228)
| | | | ['Pane11']
| | | | |
| | | | | Pane - '' (L1435, T182, R1680, B228)
| | | | | ['Pane12']
| | | | | |
| | | | | | Edit - '\r' (L1437, T195, R1635, B215)
| | | | | | ['Edit26']
| | | | | | child_window(title="\r", auto_id="SearchEditBox", control_type="Edit")
| | | | | |
| | | | | | Button - '搜索' (L1639, T182, R1677, B228)
| | | | | | ['Button30', '搜索', '搜索Button']
| | | | | | child_window(title="搜索", auto_id="SearchBoxSearchButton", control_type="Button")
| | |
| | | Pane - '' (L1689, T203, R1696, B204)
| | | ['Pane13']
| |
| | TitleBar - '' (L774, T138, R1696, B173)
| | ['TitleBar', 'TitleBar0', 'TitleBar1']
| | |
| | | Menu - '系统' (L603, T115, R625, B137)
| | | ['Menu', '系统', '系统Menu', '系统0', '系统1', 'Menu0', 'Menu1', '系统Menu0', '系统Menu1']
| | | child_window(title="系统", auto_id="MenuBar", control_type="MenuBar")
| | | |
| | | | MenuItem - '系统' (L603, T115, R625, B137)
| | | | ['系统2', '系统MenuItem', 'MenuItem', '系统MenuItem0', '系统MenuItem1', 'MenuItem0', 'MenuItem1']
| | | | child_window(title="系统", control_type="MenuItem")
| | |
| | | Button - '关闭' (L1653, T136, R1697, B173)
| | | ['关闭Button', '关闭', 'Button31', '关闭Button0', '关闭Button1', '关闭0', '关闭1']
| | | child_window(title="关闭", control_type="Button")
|
| Pane - '北京-宏哥' (L2, T115, R1918, B989)
| ['北京-宏哥Pane', '北京-宏哥', 'Pane14']
| child_window(title="北京-宏哥", control_type="Pane")
|
| TabControl - 'Tab' (L0, T83, R1920, B991)
| ['TabControl', 'TabTabControl', 'Tab']
| child_window(title="Tab", control_type="Tab")
| |
| | TabItem - '新文件 1' (L2, T85, R112, B113)
| | ['新文件 1', 'TabItem', '新文件 1TabItem']
| | child_window(title="新文件 1", control_type="TabItem")
|
| StatusBar - '' (L0, T991, R1920, B1020)
| ['Normal text fileStatusBar', 'StatusBar']
| |
| | Static - 'Normal text file' (L0, T993, R974, B1020)
| | ['Static4', 'Normal text file', 'Normal text fileStatic']
| | child_window(title="Normal text file", control_type="Text")
| |
| | Static - 'length : 13 lines : 1' (L976, T993, R1249, B1020)
| | ['length : 13 lines : 1Static', 'Static5', 'length : 13 lines : 1']
| | child_window(title="length : 13 lines : 1", control_type="Text")
| |
| | Static - 'Ln : 1 Col : 6 Pos : 14' (L1251, T993, R1574, B1020)
| | ['Static6', 'Ln : 1 Col : 6 Pos : 14Static', 'Ln : 1 Col : 6 Pos : 14']
| | child_window(title="Ln : 1 Col : 6 Pos : 14", control_type="Text")
| |
| | Static - 'Windows (CR LF)' (L1576, T993, R1712, B1020)
| | ['Static7', 'Windows (CR LF)Static', 'Windows (CR LF)']
| | child_window(title="Windows (CR LF)", control_type="Text")
| |
| | Static - 'UTF-8' (L1714, T993, R1862, B1020)
| | ['Static8', 'UTF-8', 'UTF-8Static']
| | child_window(title="UTF-8", control_type="Text")
| |
| | Static - 'INS' (L1864, T993, R1900, B1020)
| | ['Static9', 'INSStatic', 'INS']
| | child_window(title="INS", control_type="Text")
|
| Pane - '' (L0, T54, R1920, B83)
| ['Pane15']
| |
| | Toolbar - '' (L2, T54, R1920, B83)
| | ['Toolbar7']
| | |
| | | Button - '' (L2, T54, R29, B80)
| | | ['Button32']
| | |
| | | Button - '' (L29, T54, R56, B80)
| | | ['Button33']
| | |
| | | Button - '' (L56, T54, R83, B80)
| | | ['Button34']
| | |
| | | Button - '' (L83, T54, R110, B80)
| | | ['Button35']
| | |
| | | Button - '' (L110, T54, R137, B80)
| | | ['Button36']
| | |
| | | Button - '' (L137, T54, R164, B80)
| | | ['Button37']
| | |
| | | Button - '' (L164, T54, R191, B80)
| | | ['Button38']
| | |
| | | Button - '' (L199, T54, R226, B80)
| | | ['Button39']
| | |
| | | Button - '' (L226, T54, R253, B80)
| | | ['Button40']
| | |
| | | Button - '' (L253, T54, R280, B80)
| | | ['Button41']
| | |
| | | Button - '' (L288, T54, R315, B80)
| | | ['Button42']
| | |
| | | Button - '' (L315, T54, R342, B80)
| | | ['Button43']
| | |
| | | Button - '' (L350, T54, R377, B80)
| | | ['Button44']
| | |
| | | Button - '' (L377, T54, R404, B80)
| | | ['Button45']
| | |
| | | Button - '' (L412, T54, R439, B80)
| | | ['Button46']
| | |
| | | Button - '' (L439, T54, R466, B80)
| | | ['Button47']
| | |
| | | Button - '' (L474, T54, R501, B80)
| | | ['Button48']
| | |
| | | Button - '' (L501, T54, R528, B80)
| | | ['Button49']
| | |
| | | Button - '' (L536, T54, R563, B80)
| | | ['Button50']
| | |
| | | Button - '' (L563, T54, R590, B80)
| | | ['Button51']
| | |
| | | Button - '' (L590, T54, R617, B80)
| | | ['Button52']
| | |
| | | Button - '' (L617, T54, R644, B80)
| | | ['Button53']
| | |
| | | Button - '' (L644, T54, R671, B80)
| | | ['Button54']
| | |
| | | Button - '' (L671, T54, R698, B80)
| | | ['Button55']
| | |
| | | Button - '' (L698, T54, R725, B80)
| | | ['Button56']
| | |
| | | Button - '' (L725, T54, R752, B80)
| | | ['Button57']
| | |
| | | Button - '' (L752, T54, R779, B80)
| | | ['Button58']
| | |
| | | Button - '' (L787, T54, R814, B80)
| | | ['Button59']
| | |
| | | Button - '' (L814, T54, R841, B80)
| | | ['Button60']
| | |
| | | Button - '' (L841, T54, R868, B80)
| | | ['Button61']
| | |
| | | Button - '' (L868, T54, R895, B80)
| | | ['Button62']
| | |
| | | Button - '' (L895, T54, R922, B80)
| | | ['Button63']
| | |
| | | Button - '' (L930, T54, R957, B80)
| | | ['Button64']
| | |
| | | Button - '' (L957, T54, R984, B80)
| | | ['Button65']
| | |
| | | Button - '' (L984, T54, R1011, B80)
| | | ['Button66']
| | |
| | | Button - '' (L1011, T54, R1038, B80)
| | | ['Button67']
| | |
| | | Button - '' (L1038, T54, R1065, B80)
| | | ['Button68']
| | |
| | | Button - '' (L1065, T54, R1092, B80)
| | | ['Button69']
| | |
| | | Button - '' (L1092, T54, R1119, B80)
| | | ['Button70']
| | |
| | | Button - '' (L1119, T54, R1146, B80)
| | | ['Button71']
|
| TitleBar - '' (L20, T-6, R1920, B29)
| ['TitleBar2']
| |
| | Menu - '系统' (L0, T0, R22, B22)
| | ['Menu2', '系统3', '系统Menu2']
| | child_window(title="系统", auto_id="MenuBar", control_type="MenuBar")
| | |
| | | MenuItem - '系统' (L0, T0, R22, B22)
| | | ['系统4', '系统MenuItem2', 'MenuItem2']
| | | child_window(title="系统", control_type="MenuItem")
| |
| | Button - '最小化' (L1740, T0, R1800, B28)
| | ['Button72', '最小化', '最小化Button']
| | child_window(title="最小化", control_type="Button")
| |
| | Button - '还原' (L1800, T0, R1859, B28)
| | ['还原', 'Button73', '还原Button']
| | child_window(title="还原", control_type="Button")
| |
| | Button - '关闭' (L1859, T0, R1920, B28)
| | ['关闭Button2', '关闭2', 'Button74']
| | child_window(title="关闭", control_type="Button")
|
| Menu - '应用程序' (L0, T23, R1536, B42)
| ['Menu3', '应用程序', '应用程序Menu']
| child_window(title="应用程序", auto_id="MenuBar", control_type="MenuBar")
| |
| | MenuItem - '文件(F)' (L0, T23, R53, B42)
| | ['MenuItem3', '文件(F)MenuItem', '文件(F)']
| | child_window(title="文件(F)", control_type="MenuItem")
| |
| | MenuItem - '编辑(E)' (L53, T23, R106, B42)
| | ['编辑(E)', '编辑(E)MenuItem', 'MenuItem4']
| | child_window(title="编辑(E)", control_type="MenuItem")
| |
| | MenuItem - '搜索(S)' (L106, T23, R160, B42)
| | ['搜索(S)MenuItem', 'MenuItem5', '搜索(S)']
| | child_window(title="搜索(S)", control_type="MenuItem")
| |
| | MenuItem - '视图(V)' (L159, T23, R213, B42)
| | ['视图(V)MenuItem', '视图(V)', 'MenuItem6']
| | child_window(title="视图(V)", control_type="MenuItem")
| |
| | MenuItem - '编码(N)' (L214, T23, R270, B42)
| | ['编码(N)MenuItem', '编码(N)', 'MenuItem7']
| | child_window(title="编码(N)", control_type="MenuItem")
| |
| | MenuItem - '语言(L)' (L270, T23, R323, B42)
| | ['语言(L)', '语言(L)MenuItem', 'MenuItem8']
| | child_window(title="语言(L)", control_type="MenuItem")
| |
| | MenuItem - '设置(T)' (L322, T23, R376, B42)
| | ['设置(T)MenuItem', '设置(T)', 'MenuItem9']
| | child_window(title="设置(T)", control_type="MenuItem")
| |
| | MenuItem - '工具(O)' (L376, T23, R432, B42)
| | ['工具(O)MenuItem', '工具(O)', 'MenuItem10']
| | child_window(title="工具(O)", control_type="MenuItem")
| |
| | MenuItem - '宏(M)' (L432, T23, R478, B42)
| | ['宏(M)', '宏(M)MenuItem', 'MenuItem11']
| | child_window(title="宏(M)", control_type="MenuItem")
| |
| | MenuItem - '运行(R)' (L478, T23, R532, B42)
| | ['运行(R)MenuItem', '运行(R)', 'MenuItem12']
| | child_window(title="运行(R)", control_type="MenuItem")
| |
| | MenuItem - '插件(P)' (L533, T23, R587, B42)
| | ['插件(P)MenuItem', '插件(P)', 'MenuItem13']
| | child_window(title="插件(P)", control_type="MenuItem")
| |
| | MenuItem - '窗口(W)' (L586, T23, R644, B42)
| | ['窗口(W)', '窗口(W)MenuItem', 'MenuItem14']
| | child_window(title="窗口(W)", control_type="MenuItem")
| |
| | MenuItem - '?' (L645, T23, R665, B42)
| | ['?MenuItem', '?', 'MenuItem15']
| | child_window(title="?", control_type="MenuItem")
| |
| | MenuItem - 'X' (L1514, T23, R1536, B42)
| | ['X', 'MenuItem16', 'XMenuItem']
| | child_window(title="X", control_type="MenuItem")
Process finished with exit code 0
从上边的内容中,找到【文件名】和【保存】备用。

# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-05-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: PC端自动化测试实战教程-10-pywinauto操作弹出文件选择框 (详细教程)
'''
# 3.导入模块
from pywinauto import Application
import time
app = Application('uia').start("D:/software/Notepad/Notepad++/notepad++.exe")
win = app['新文件 1 - Notepad++']
win.type_keys("北京-宏哥")
win.child_window(title="应用程序", auto_id="MenuBar", control_type="MenuBar")
# # 文件-另存为
win.menu_select('文件(F) -> 另存为(A)...')
# 等待另存为窗口出现
win.child_window(title="另存为", control_type="Window").wait('ready', timeout=5)
# # 输入文件名称
win.child_window(title="文件名:", control_type="Edit").type_keys("北京宏哥.txt")
win.print_ctrl_ids()
# # 保存
win.child_window(title="保存(S)", control_type="Button").click()
1.运行代码,右键 Run'Test',就可以看到控制台输出,如下图所示:

2.运行代码后电脑端的动作(与测试场景一致)。如下图所示:

3.文件会默认保存到代码项目的根目录,查看如下图所示:

print_control_identifiers() 输出所有控件信息辅助调试。backend 参数("win32" 或 "uia")适配不同应用。save_dialog.wait("visible", timeout=10)
好了,时间不早了今天就分享到这里,感谢你耐心地阅读!