跳转到内容

查找多个web元素

查找多个web元素 用于一次性查找页面上所有匹配同一个选择器的元素,并返回每个元素的文本和标签信息。它常用于列表、表格、卡片等需要批量读取或循环处理的场景。

指令标识:FindWebElements
指令类型:网页指令
指令描述:查找匹配选择器的多个网页元素

工作流支持「可视化编排」和「代码编排」两种创建方式。查找多个web元素 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。

方式怎么用适合人群
可视化编排(推荐先学)拖入「查找多个web元素」节点,捕获列表项选择器、设置输出变量大多数用户,零代码,适合快速搭建和调试
代码编排(Python)在脚本中调用 bots.findWebElements(selector="...", outKey="els")熟悉代码、需要复用脚本或批量生成流程的用户

第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。

  • 需要读取列表中所有项的文本,例如所有标题、价格、状态。
  • 需要知道某类元素一共有多少个。
  • 需要批量处理一组同类元素。

注意:本指令返回的是每个元素的文本和标签信息(数据),适合做读取和统计。如果要对每个元素逐一执行点击等操作,建议配合 循环元素

  • 页面已经加载到列表渲染完成的状态,必要时先用等待节点。
  • 选择器能匹配到列表中所有同类项(不是只匹配单个)。
  • 已经规划好输出变量名。
查找多个web元素

下面用一个常见场景演示:读取列表里所有项的文本

  1. 确认页面已经打开,列表已渲染。
  2. 在查找前添加 等待元素存在,等待列表区域出现。
  3. 添加 查找多个web元素 节点,捕获能匹配所有列表项的选择器。
  4. 将结果保存至 填写变量名,例如 items
  5. 运行后查看变量值,是一个包含每项 innerTexttagName 的列表。
界面名称代码属性名类型必填默认值说明
元素选择器selectorString-用于匹配一组元素的选择器。建议从元素库捕获列表项。
其他属性列表otherAttributesList<String>-高级选项,需要额外读取的属性名列表,JSON 数组格式,例如 ["value"]
iframe 页面定位器frameSelectorString-目标元素在 iframe 内时填写。
界面名称代码属性名类型必填说明
将结果保存至outKeyString建议填写保存匹配元素列表,每项包含 innerText(文本)和 tagName(标签名,小写)。
  • 查找多个web元素 节点运行结束后状态为成功。
  • 运行日志中没有参数缺失、超时或执行失败等错误。
  • 如果配置了输出变量,后续节点能够读取到符合预期的结果。
  • 后续节点能够继续执行,流程没有因为该节点异常中断。
现象可能原因处理建议
结果为空选择器没匹配到元素,或列表还没渲染先等待列表区域出现,再确认选择器能匹配到列表项
只匹配到 1 个选择器写得过于具体改用能匹配整组列表项的通用选择器
文本是空的元素本身没有可见文本该元素可能是图标或容器,按需改选带文本的子元素

代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。

# 查找列表中所有项,返回值即元素信息列表
items = bots.findWebElements(
selector="//ul[@id='list']/li",
outKey="items",
)
for it in items:
print(it["innerText"])

如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。

A: 每一项包含 innerText(元素可见文本)和 tagName(元素标签名,小写)。

A: 本指令偏向读取数据。如果要逐个对元素执行点击等操作,建议使用 循环元素 节点遍历处理。