查找多个web元素
查找多个web元素 用于一次性查找页面上所有匹配同一个选择器的元素,并返回每个元素的文本和标签信息。它常用于列表、表格、卡片等需要批量读取或循环处理的场景。
指令标识:FindWebElements
指令类型:网页指令
指令描述:查找匹配选择器的多个网页元素
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。查找多个web元素 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「查找多个web元素」节点,捕获列表项选择器、设置输出变量 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 bots.findWebElements(selector="...", outKey="els") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 需要读取列表中所有项的文本,例如所有标题、价格、状态。
- 需要知道某类元素一共有多少个。
- 需要批量处理一组同类元素。
注意:本指令返回的是每个元素的文本和标签信息(数据),适合做读取和统计。如果要对每个元素逐一执行点击等操作,建议配合 循环元素。
- 页面已经加载到列表渲染完成的状态,必要时先用等待节点。
- 选择器能匹配到列表中所有同类项(不是只匹配单个)。
- 已经规划好输出变量名。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”下面用一个常见场景演示:读取列表里所有项的文本。
- 确认页面已经打开,列表已渲染。
- 在查找前添加 等待元素存在,等待列表区域出现。
- 添加 查找多个web元素 节点,捕获能匹配所有列表项的选择器。
- 在 将结果保存至 填写变量名,例如
items。 - 运行后查看变量值,是一个包含每项
innerText、tagName的列表。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 元素选择器 | selector | String | 是 | - | 用于匹配一组元素的选择器。建议从元素库捕获列表项。 |
| 其他属性列表 | otherAttributes | List<String> | 否 | - | 高级选项,需要额外读取的属性名列表,JSON 数组格式,例如 ["value"]。 |
| iframe 页面定位器 | frameSelector | String | 否 | - | 目标元素在 iframe 内时填写。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | String | 建议填写 | 保存匹配元素列表,每项包含 innerText(文本)和 tagName(标签名,小写)。 |
查找多个web元素节点运行结束后状态为成功。- 运行日志中没有参数缺失、超时或执行失败等错误。
- 如果配置了输出变量,后续节点能够读取到符合预期的结果。
- 后续节点能够继续执行,流程没有因为该节点异常中断。
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 结果为空 | 选择器没匹配到元素,或列表还没渲染 | 先等待列表区域出现,再确认选择器能匹配到列表项 |
| 只匹配到 1 个 | 选择器写得过于具体 | 改用能匹配整组列表项的通用选择器 |
| 文本是空的 | 元素本身没有可见文本 | 该元素可能是图标或容器,按需改选带文本的子元素 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 查找列表中所有项,返回值即元素信息列表items = bots.findWebElements( selector="//ul[@id='list']/li", outKey="items",)for it in items: print(it["innerText"])如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:返回的每一项有哪些字段?
Section titled “Q1:返回的每一项有哪些字段?”A: 每一项包含 innerText(元素可见文本)和 tagName(元素标签名,小写)。
Q2:想对每个元素点击怎么办?
Section titled “Q2:想对每个元素点击怎么办?”A: 本指令偏向读取数据。如果要逐个对元素执行点击等操作,建议使用 循环元素 节点遍历处理。