获取文本
获取文本 用于读取网页元素上可见的文本内容,并保存到变量。它常用于从页面中提取标题、数量、状态、提示信息、订单号、表格字段等结果。
指令标识:GetText
指令类型:网页指令
指令描述:获取网页元素文本信息
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。获取文本 在两种方式里都能用,核心业务参数一致,区别主要是你通过界面配置,还是通过 Python 脚本配置。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「获取文本」节点,捕获元素、设置输出变量 | 大多数用户,零代码,适合快速搭建和调试 |
| 代码编排(Python) | 在脚本中调用 result = bots.getText(selector="...", outKey="result") | 熟悉代码、需要复用脚本或批量生成流程的用户 |
第一次使用建议先用可视化编排跑通,再迁移到 Python 代码编排。下方「参数说明」同时给出界面字段和代码参数名,方便两种方式对应。
什么时候用?
Section titled “什么时候用?”- 读取页面上的数量、标题、状态、提示语。
- 从后台页面提取订单号、审批结果、报表字段。
- 点击或搜索后,获取页面返回结果。
- 在结束节点输出业务结果,供定时任务或智能助理复用。
如果要读取元素属性,例如链接地址、图片地址、输入框 value,可以使用 获取元素属性。
- 页面已经进入要读取内容的状态。
- 目标文本已经渲染完成,必要时先使用等待节点。
- 捕获的是包含目标文字的元素,不是外层过大的容器或无关区域。
- 如果目标在 iframe 中,需要配置 iframe 页面定位器。
- 使用正则时,先确认完整文本是什么。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”- 先让页面进入目标状态,例如查询完成、详情页打开、弹窗出现。
- 在读取前添加 等待元素存在。
- 捕获要读取的文本元素。
- 在 将结果保存至 中填写变量名,例如
result_text。 - 运行后查看变量值是否和页面显示一致。
新手建议先读取完整文本,确认结果正确后,再用正则表达式提取其中一部分。
一个数据读取 RPA 可以这样配置:
- 打开网页:进入目标网站。
- 点击元素:进入目标列表或详情页。
- 等待元素存在:等待结果区域出现。
- 获取文本:读取岗位数量、订单状态或提示信息,保存为
result_text。 - 结束节点:输出
result_text。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 元素选择器 | selector | String | 是 | - | 用于定位要读取的文本元素,不能为空,支持 CSS 选择器、XPath 等。建议从元素库捕获。 |
| 正则表达式 | regex | String | 否 | - | 高级参数,从完整文本中提取匹配内容。有捕获组时返回第一个捕获组,否则返回完整匹配。 |
| iframe 页面定位器 | frameSelector | String | 否 | - | 高级参数,目标文本在 iframe 内时填写其 xpath。 |
| 查找元素高级配置 | findElementOptions | JSON | 否 | - | 高级参数,查找元素的高级配置,可在其中设置定位超时时间(timeout)等,以 JSON 配置。 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 将结果保存至 | outKey | String | 建议填写 | 保存读取到的文本内容。返回元素的 innerText,不包含 HTML 标签。默认找不到元素时节点会报错;仅当节点「失败处理」设为「可选 / 继续」时,才会输出空字符串并继续执行。 |
读取完整文本还是用正则?
Section titled “读取完整文本还是用正则?”| 做法 | 适合场景 | 示例 |
|---|---|---|
| 读取完整文本 | 新手调试、结果本身就是完整文案 | 提交成功 |
| 使用正则 | 文本中只需要一部分字段 | 从 共 128 条记录 提取 128 |
建议先读取完整文本,确认元素选对后,再增加正则。
- 获取文本节点执行成功。
- 输出变量不是空值。
- 输出内容与页面显示一致。
- 如果配置了正则,输出内容符合预期格式。
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 日志提示元素未找到、节点报错中止 | 页面未到目标状态或定位失效 | 先等待目标区域,再重新捕获;默认找不到元素会报错中止,仅当失败处理设为「可选 / 继续」才会输出空字符串 |
| 输出为空 | 选中的元素没有 innerText 或文本尚未渲染 | 换选更准确的文本元素,或增加等待 |
| 正则后为空 | 正则没有匹配到内容 | 先去掉正则读取完整文本,再调整表达式 |
| 读到多余文本 | 捕获了过大的父容器 | 重新捕获更小的文本节点 |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
bots.openUrl(url="https://example.com")
# 读取文本,返回值即读取结果result = bots.getText( selector="//*[@id='__next']/div[2]/div[2]/section/div[1]/h1", findElementOptions={"timeout": 5000}, outKey="result",)print(result)如果你想在工作流中通过节点动态编排指令,可使用 执行指令(XML)节点。
Q1:返回的文本包含HTML标签吗?
Section titled “Q1:返回的文本包含HTML标签吗?”A: 不包含。该指令返回的是元素的innerText,不包含任何HTML标签。如果需要获取HTML内容,应使用 获取元素属性 指令获取 innerHTML 属性。
Q2:如果使用正则表达式但没有匹配到内容会怎样?
Section titled “Q2:如果使用正则表达式但没有匹配到内容会怎样?”A: 如果正则表达式没有匹配到内容,会返回空字符串,不会抛出异常。建议在使用正则提取后检查结果是否为空。
Q3:正则表达式中的捕获组如何工作?
Section titled “Q3:正则表达式中的捕获组如何工作?”A: 如果正则表达式中有捕获组(用括号括起来的部分),会返回第一个捕获组的内容;如果没有捕获组,会返回完整的匹配内容。例如:(\d+) 会返回捕获组内的数字。
Q4:如果元素不存在会怎样?
Section titled “Q4:如果元素不存在会怎样?”A: 该节点失败处理默认为「报错中止(STOP_ON_FAILURE)」,找不到元素时会报错并中断流程;仅当把节点失败处理设为「可选 / 继续」时,才会输出空字符串并继续执行。为避免误判,建议先使用 等待元素存在。