Appearance
DOM树改变监控
🚩【组件功能】:监控DOM树子节点变动、属性的变动、节点文本的变动
当配置中启用的属性被监控后会触发对应事件,返回数据结构包含如下属性,用FLOW关键字取对应属性值
- addedNodes:新增的DOM节点的outerHTML(字符串数组)。
- removedNodes:删除的DOM节点的outerHTML(字符串数组)。
- previousSibling:前一个同级节点的outerHTML,如果没有则返回null(字符串)。
- nextSibling:下一个同级节点的outerHTML,如果没有则返回null(字符串)。
- attributeName:发生变动的属性。如果设置了attributeFilter,则只返回预先指定的属性(字符串)。
- oldValue:变动前的值。这个属性只对attribute和characterData变动有效,如果发生childList变动,则返回null(字符串)。
配置预览
配置说明
目标元素 支持T或# 默认FLOW输入项
监控DOM树的目标元素,支持css和xpath。
子节点的变动
当启用此属性,监控目标元素子节点的新增、删除或者更改。
属性的变动
当启用此属性,监控目标元素属性的变动。
节点文本的变动
当启用此属性,监控目标元素内容或文本的变动。
节点的所有后代节点
当启用此属性,监控目标元素所有后代节点的变动。
指定监听的属性 支持T或#
当启用“属性的变动”时,在此配置要监控的目标元素属性,若为空监控所有属性的变动。
执行后等待时间 支持T或#
执行操作后等待时间
iframe 支持T或#
若获取元素是框架iframe中元素,需要手动填写框架名称,框架使用方法:框架Iframe介绍
输入输出
输入类型
万能对象(System.Object)
输出类型
万能对象(System.Object)
🏁 上一组件的输出类型如果也是字符串,则可以直接输入到本组件的流变量(FLOW,类型也为字符串),如果不是则不接收,在本组件内任何文本配置区域都可以使用T模式下的 ~flow 或#模式下的FLOW
格式直接调用该流变量,流变量FLOW在该组件内未做任何修改,本组件完成功能处理后,将结果按万能对象类型(System.Object)输出到下一组件。
组件依赖
该组件为浏览器分类功能组件,依赖本浏览器分类浏览器-打开浏览器初始化组件,可以安装卸载,在流程内使用时必须在初始化组件的后面,如果需要多个对象执行逻辑,可以点击主流程区域组件右上角图标在多个对象间切换调用,可以理解为火语言的实例对象方法。
支持平台
~win-yes ~mac-yes ~linux-yes
更新历史及框架依赖
组件当前最新版本为 V1.0,暂无版本更新历史,暂无主程序框架依赖要求。
所在组件市场链接:DOM树改变监控 V1.0
组件同时安装多版本操作提示
➡️ 一个组件存在功能升级及Bug完善后会发布成新更新的版本,比如V1.0
, V1.1
, V2.0
;
➡️ 如果在本地以前安装了旧的组件版本,发现了新的组件版本后,可以在线安装新的版本到本地,多个版本可以在本地共存;
➡️ 本地安装有当前组件多个版本时,新编辑的流程内拖拽该组件使用时,都会默认使用组件的最新版本;
➡️ 如果流程中已经保存使用了组件的比较旧版本:
默认不会对用户的应用流程内该组件进行任何操作,使用组件旧的版本及配置以保证原流程完整功能的正常使用;
用户可以在流程编辑时对存在更新的组件,自行选择确认是否升级切换到较高版本,当切换时,新的组件用户配置信息可能需要您做细节确认以保证功能适用;
例如:输出日志组件最新版为1.0.1,当前流程使用的版本为1.0.0,在组件名称后点击历史版本下拉列表,选中要更新的版本1.0.1。
然后弹出提示框,确定是否更新。
成功更新到指定版本后,组件历史版本较旧的版本列表将不再显示,如果更新的版本是该组件的最新版本,则版本选择框整体不再显示。
切换到新版本并进行规则保存后,不再提供组件的向下降级,提醒您在进行流程内组件版本的升级时,请确认应用流程规则已进行过保存备份。
➡️ 多段流程使用了组件的多个版本,运行时相互之间不会受到影响;
➡️ 在某些极端情况下,用户开发的相同组件的不同版本可能调用了外部动态链接库的不同版本而未做命名空间隔离,敬请尽量不要在单段流程内使用组件的不同版本。
示例
监控子节点变动
描述
浏览网页https://www.huoyuyan.com/help/demo-pages/browsers/dom_change.html
,监控目标元素//*[@id="todoList"]
,将监控到的新增节点通过遍历FLOW.addedNodes
属性打印出来。
配置
输出结果
监控属性变动
描述
浏览网页https://www.huoyuyan.com/help/demo-pages/browsers/dom_change.html
,监控目标元素//*[@id="todoList"]
,将监控到的属性通过FLOW.attributeName
打印出来。