Skip to content

元素选择器

元素选择器用于告诉工作流要操作哪个页面元素。例如,当使用表单块填充特定表单输入时,需要指定目标输入元素。使用 input.form-name 选择器,工作流将填充具有 form-name <input /> 元素。

在 MakAgent 中,您可以使用 CSS 选择器XPath 表达式 来定位元素。

块选择器选项

在编辑需要元素选择器的组件时(如点击元素获取文本),您会看到以下选项:

多选

选择与选择器匹配的所有元素。默认情况下,MakAgent 仅选择匹配的第一个元素。

例如,使用选择器 p获取文本块将检索所有匹配 <p> 元素的文本内容,而不仅仅是第一个。

标记元素

标记已选择的元素。 这意味着如果该元素之前已被同一个块选择过,则该元素将不会被选择。

例如,当你有这样的工作流程时

工作流程示例

以及使用 .text 作为元素选择器的 获取文本块,以及网站 DOM 树

html
<div>
  <p class="text" id="1">Text</p>
  <p class="text" id="2">Text</p>
  <p class="text" id="3">Text</p>
  <p class="text" id="4">Text</p>
</div>
<div>
  <p class="text" id="1">Text</p>
  <p class="text" id="2">Text</p>
  <p class="text" id="3">Text</p>
  <p class="text" id="4">Text</p>
</div>

当执行获取文本块时,它会获取与选择器匹配的第一个元素,即<p class="text" id="1">Text</p > 并且由于启用了标记元素选项,因此它将标记元素并看起来像这样 <p class="text" id="1" block--block-id>Text</p>

html
<div>
  <p class="text" id="1" block--block-id>Text</p>
  <p class="text" id="2">Text</p>
  <p class="text" id="3">Text</p>
  <p class="text" id="4">Text</p>
</div>
<div>
  <p class="text" id="1" block--block-id>Text</p>
  <p class="text" id="2">Text</p>
  <p class="text" id="3">Text</p>
  <p class="text" id="4">Text</p>
</div>

当第二次执行 获取文本块时,它将重复执行相同的操作,但不会选择 <p class="text" id="1" block--block-id>Text</p> 它将选择 <p class="text" id="2">Text</p> 元素,因为第一个元素已被标记。

等待选择器

等待选择器匹配的元素出现在页面上。如果元素已存在,组件立即执行;如果在设定的超时时间内元素未出现,工作流将抛出错误。

生成选择器

如果您不熟悉选择器语法,可以使用以下方法自动生成:

MakAgent 元素选择器

在 MakAgent 仪表板中,点击侧边栏的 按钮,页面将注入元素选择器工具。点击或按空格键选择元素,系统会自动生成对应的选择器。

元素选择器

选择元素按钮

编辑组件时点击"选择元素"按钮,系统会注入元素选择器工具,选择元素后点击"选择元素"按钮确认。

选择元素按钮

自定义选择器语法

除了标准的 CSS 选择器 和 XPath 表达式,MakAgent 还支持以下扩展语法:

  • iframe 内元素选择iframe.result |> button.primary-btn(选择 iframe 内的按钮)
  • 文本内容选择p.description:contains("cat")(选择包含"cat"文本的描述段落)
  • Shadow DOM 选择div.app-container >> h1.title(选择 Shadow DOM 内的标题元素)