跳转到内容

获取元素属性

获取元素属性 用于读取网页元素的 HTML 属性值。它适合提取页面上不一定直接显示的值,例如链接 href、图片 src、输入框 value、按钮状态、data-* 自定义属性等。

指令标识:GetElementAttribute
指令类型:网页指令
指令描述:获取指定页面元素的HTML属性值,支持所有标准HTML属性的获取

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

方式怎么用适合人群
可视化编排(推荐先学)拖入「获取元素属性」节点,捕获元素、填写属性名、设置输出变量大多数用户,零代码,适合快速搭建和调试
代码编排(Python)在脚本中调用 href = bots.getElementAttribute(selector="...", attributeName="href", outKey="detailUrl")熟悉代码、需要复用脚本或批量生成流程的用户

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

获取元素属性
  • 获取链接元素的 href,用于后续跳转或下载。
  • 获取图片元素的 src,用于保存或校验图片地址。
  • 获取输入框的 value,确认页面里实际填入了什么。
  • 获取元素的 classdisabledaria-* 等状态属性。
  • 获取 data-* 自定义属性里的业务 ID。
  • 目标元素已经出现,必要时先使用 等待元素存在
  • 你知道要读取的属性名。
  • 如果目标在 iframe 中,需要配置 iframe 页面定位器。
  • 如果属性不存在,输出会是空字符串。
  1. 先让页面进入目标状态,并确认目标元素已经出现。
  2. 捕获要读取属性的元素。
  3. 属性名称 中填写要读取的属性,例如 hrefsrcvalueclassdata-id
  4. 将结果保存至 中填写变量名,例如 attribute_value
  5. 运行后查看变量值是否符合预期。

新手建议:如果页面上能直接看到文字,优先使用 获取文本;如果要读取链接、图片地址、输入框值或隐藏属性,再使用本指令。

一个提取链接地址的流程可以这样配置:

  1. 打开网页:进入目标页面。
  2. 等待元素存在:等待目标链接出现。
  3. 获取元素属性:读取链接的 href,保存为 detail_url
  4. 导航到 URL:使用 detail_url 进入详情页。
界面名称代码属性名类型必填默认值说明
元素选择器selectorString-用于定位目标元素,不能为空,支持 CSS 选择器、XPath 等。建议从元素库捕获。
属性名称attributeNameString-要读取的 HTML 属性名,不能为空,例如 hrefsrcvalueclassdata-id
iframe 页面定位器frameSelectorString-高级参数,目标元素在 iframe 内时填写其 xpath。
查找元素高级配置findElementOptionsJSON-高级参数,查找元素的高级配置,可在其中设置定位超时时间(timeout)等,以 JSON 配置。
界面名称代码属性名类型必填说明
将结果保存至outKeyString建议填写保存读取到的属性值。属性不存在或元素未找到时输出空字符串。
指令读取对象典型用途
获取文本页面上显示给用户看的文本标题、状态、提示语、数量
获取元素属性元素标签上的属性值hrefsrcvaluedata-*class
  • 输出变量不是空值,或空值符合业务预期。
  • 输出值和目标元素的属性一致。
  • 如果读取 value,结果和输入框当前内容一致。
  • 后续节点能使用该变量继续执行。
获取元素属性
现象可能原因处理建议
输出为空属性不存在、元素未找到或属性名写错先确认元素存在,再检查属性名;元素未找到或属性不存在时都会输出空字符串
获取输入框值为空读取时机太早或输入未生效输入后增加等待或点击后再读取
读到的链接不完整页面使用相对路径后续使用前拼接站点域名,或读取页面 URL 作为基准
元素存在但读不到目标在 iframe 或新窗口配置 iframe,或先切换到正确页面

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

bots.openUrl(url="https://example.com")
# 读取元素属性,返回值即属性值
href = bots.getElementAttribute(
selector="//a[@class='detail-link']",
attributeName="href",
findElementOptions={"timeout": 5000},
outKey="detailUrl",
)
print(href)

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

Q1:如果指定的属性不存在会怎样?

Section titled “Q1:如果指定的属性不存在会怎样?”

A: 输出变量会得到空字符串。建议在后续流程中判断空值,避免把“没有属性”误认为成功。

A: 支持所有标准HTML属性,常见的包括:

  • href:链接地址
  • src:资源地址(图片、脚本等)
  • value:输入框的值
  • class:CSS类名
  • id:元素ID
  • title:标题提示
  • data-*:自定义数据属性

A: 可以使用 innerHTMLouterHTML 属性。innerHTML 返回元素内部的HTML内容,outerHTML 返回包含元素本身的完整HTML。

Q4:对于动态加载的元素应该注意什么?

Section titled “Q4:对于动态加载的元素应该注意什么?”

A: 对于动态加载的页面元素,建议在「查找元素高级配置」(findElementOptions)中增大 timeout 等待时间,或在获取属性前先等待元素加载完成,避免获取失败。