元素选择器
元素选择器用于在与页面交互或提取数据时识别页面上的元素。例如,如果您希望工作流使用 表单模块 填写页面上的特定表单输入,它需要知道要填写哪些输入元素。通过使用 input.form-name
选择器,它告诉工作流填写具有 form-name
类 的 <input />
元素。
在 Automa 中,您可以使用 CSS 选择器 或 XPath 表达式 选择元素。
模块选择器选项
当您编辑需要元素选择器才能工作的模块时,例如 点击元素 和 获取文本模块,您会看到这些选项。
多个
选择与选择器匹配的多个元素。默认情况下,Automa 仅选择第一个与选择器匹配的元素。
例如,当使用 p
作为选择器的 获取文本模块 时,Automa 将从所有匹配的元素中获取文本内容,而不是仅从第一个匹配的元素中获取。
标记元素
标记已选择的元素。这意味着如果同一模块之前已选择该元素,则不会再次选择。
例如,当您有如下工作流:
并且 获取文本模块 使用 .text
作为元素选择器,以及网站的 DOM 树。
<div>
<p class="text" id="1">文本</p>
<p class="text" id="2">文本</p>
<p class="text" id="3">文本</p>
<p class="text" id="4">文本</p>
</div>
当 获取文本模块 被执行时,它获取与选择器匹配的第一个元素,即 <p class="text" id="1">文本</p>
,并且由于标记元素选项已启用,它将标记该元素,变为 <p class="text" id="1" block--block-id>文本</p>
。
<div>
<p class="text" id="1" block--block-id>文本</p>
<p class="text" id="2">文本</p>
<p class="text" id="3">文本</p>
<p class="text" id="4">文本</p>
</div>
当获取文本模块第二次执行时,它将重复相同的操作,但不会选择 <p class="text" id="1" block--block-id>文本</p>
,而是选择 <p class="text" id="2">文本</p>
元素,因为第一个元素已被标记。
等待选择器
等待 selector
在页面上出现。如果在检查 selector
时,selector
已存在,则模块立即执行。如果在 timeout
文本框中指定的时间内 selector
没有出现,工作流将抛出错误。
生成选择器
如果您不知道如何编写自己的选择器,可以使用 Automa 元素选择器或模块上的“选择”按钮。
Automa 元素选择器
在 Automa 仪表板中,点击侧边栏上的 按钮,Automa 将在当前页面注入一个元素选择器。您可以点击或按 Space
键选择一个元素。它将自动为所选元素生成一个选择器。
在编辑模块时,您会找到“选择元素”按钮。当您点击它时,它将把元素选择器注入到当前页面,选择一个元素,然后在元素选择器中点击“选择元素”按钮。
自定义选择器语法
除了支持标准的 CSS 选择器 和 XPath 表达式外,Automa 还支持非标准语法:
iframe-selector |> element-selector
:允许选择 iframe 元素内部的元素。例如,iframe.result |> button.primary-btn
:contains(TEXT)
:根据文本选择元素。例如,p.description:contains("cat")
shadow-dom-selector >> element-selector
:选择 shadow DOM 内部的元素。例如,div.app-container >> h1.title