构建自定义选择器

虽然 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 还使您能够使用变量创建动态选择器。 如果选择器属性的值取决于之前操作的计算和结果,请将硬编码值替换为变量。

若要在选择器中使用变量,手动填充包含百分比符号 (%) 的变量名称或使用变量按钮。 变量可在视觉对象和文本编辑器中使用。 您可以在使用变量和 % 符号中找到有关百分比符号的详细信息。

如果您在记事本示例的名称属性中使用变量,选择器应该为 :desktop > window[Name="%WindowName%"][Process="Notepad"]

记事本选择器中变量的屏幕截图。