构建自定义选择器
虽然 Power Automate 可以自动创建选择器,但在某些特定场景下,仍需要手动创建选择器。一个常见场景是自动化处理显示动态内容的应用程序。
需要自定义选择器时,可以修改现有选择器,也可以从头创建一个选择器。
要编辑现有选择器,请先选择相应的 UI 元素,再选择要编辑的选择器。

同一个 UI 元素可以有多个选择器。某个选择器失败时,Power Automate 会按定义的顺序尝试下一个选择器。要为 UI 元素添加更多选择器,可以使用带有重新捕获功能的选择器按钮捕获新选择器,也可以复制现有选择器。要创建副本,请右键单击现有选择器,然后选择“创建副本”。

选择器使用 > 表示所选元素的层级结构。选择器中的每个元素都包含在它左侧的元素内,表示形式如下:
element[Attribute1=”Attribute1Name”][Attribute2=”Attribute2Name”]...[Attributen=”AttributenName”]
元素的属性用于唯一描述该元素,使它与同一应用程序中的其他元素区分开。启用或禁用属性可以改变选择器所指向的应用程序组件。
备注: Web 选择器和桌面选择器具有相同的结构和功能,主要区别在于可用的属性。Web 选择器使用 HTML 属性;桌面选择器则根据应用程序的设计使用不同类型的属性。
为了精确指定应用程序组件,Power Automate 使用多级选择器。
选择器通过树结构描述组件在应用程序或网页中的确切位置。每一级都是上一级选择器的子级,也是下一级选择器的父级。较低层级的选择器描述要处理的组件。
借助这种结构,Power Automate 可以将某个组件与同一应用程序中具有相似属性的组件区分开。启用或禁用选择器的某些层级,可以改变 Power Automate 搜索组件的位置。
例如,下面的选择器可以精确定位记事本窗口中的“文件”菜单项。选择器的前两级描述窗口的窗格和菜单栏,第三级描述“文件”选项。
备注: 记事本窗口和窗格是不同的 UI 元素,但两者具有父子关系。

假设要修改选择器,使它适用于名为 Notes.txt 的记事本窗口,请将选择器的 Name 属性改为 Notes.txt - Notepad。新的选择器应为::desktop > window[Name="Notes.txt - Notepad"][Process="Notepad"]。

在自定义选择器中使用运算符
上一个示例通过特定的窗口标题定位记事本窗口。要让选择器更具动态性,可以将“等于”运算符替换为其他运算符或正则表达式。

“等于”运算符会让选择器查找特定的硬编码值。这适用于静态应用程序,但在动态应用程序中,硬编码的值可能成为障碍。
对于值不固定、但始终包含某个关键字的元素,可以使用“包含”运算符。例如,在记事本选择器中使用“包含”运算符,使其适用于所有记事本窗口。

除了“等于”和“包含”,Power Automate 还提供另外四种运算符:
- 不等于: 检查属性是否包含指定值以外的值。
- 开头为: 检查属性值是否以指定的字符、关键字或短语开头。
- 结尾为: 检查属性值是否以指定的字符、关键字或短语结尾。
- 正则表达式匹配: 检查属性值是否与自定义正则表达式匹配。Power Automate 使用 .NET 正则表达式引擎。关于正则表达式的更多信息,请参阅正则表达式语言 — 快速参考。
在自定义选择器中使用变量
除了使用不同的运算符,Power Automate 还支持通过变量创建动态选择器。如果某个选择器属性的值取决于前面操作的计算或结果,可以用变量替换硬编码值。
要在选择器中使用变量,可以手动输入用百分号 % 包围的变量名,也可以使用变量按钮。可视化编辑器和文本编辑器都支持变量。关于百分号表示法的更多信息,请参阅变量操作和 % 表示法。
如果在记事本示例的 Name 属性中使用变量,选择器应为::desktop > window[Name="%WindowName%"][Process="Notepad"]。

来源、许可与修改说明
本文依据 Microsoft Learn 官方中文文档《构建自定义选择器》作完整语言整理。该中文页面标注的最后更新日期为 2023 年 3 月 16 日。本版本统一了中文措辞、控件名称和排版,并将资料及图片链接转换为绝对地址;保留了全部正文小节、说明、列表、选择器示例和七张教学图的原始链接。
对应的官方 GitHub 源文件署名为 mattp123,并列出贡献者 Yiannismavridis、NikosMoutzourakis 和 PetrosFeleskouras;源文件日期字段为 2025 年 5 月 12 日。本整理稿保留上述指定中文页面的版本。
Microsoft Corporation 及贡献者保有原内容的相应权利。官方仓库的法律声明将文档及其他内容按 Creative Commons Attribution 4.0 International(CC BY 4.0)授权,将代码按 MIT 许可授权。文档许可原文及免责声明见仓库 LICENSE。本整理版本不代表 Microsoft 的认可或背书;上述许可不授予商标权。
选择器示例的版权与 MIT 许可声明如下:
The MIT License (MIT)
Copyright (c) Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.











暂无评论内容