节点文档
查找每个节点的用途,查看真实节点样式、输入输出和配置参数,并在页面中尝试修改。
当前显示 210 / 210 个节点
自动化
38 个节点使用已校准的目标配置转向 90 度。
navigation.turn在配置目标中按一次 Ctrl+C,再进行后续操作。
keyboard.press按住前进键执行一段操作,再把租约交给释放按住输入节点。
keyboard.hold在指定坐标按住左键,完成其他操作后用输出租约释放。
mouse.hold启动应用后等待配置选择器匹配到窗口,再开始操作。
window.wait发送关闭请求后等待匹配窗口全部消失。
window.wait-gone点击翻页后等待内容区域相对基准画面产生足够变化。
observation.wait-change页面加载后等待区域保持稳定,再截图识别,减少过渡画面的干扰。
observation.wait-stable等待“加载完成”模板出现,再开始后续自动化步骤。
template.wait等待加载遮罩模板消失,再继续操作页面。
template.wait-gone选择按钮模板,在配置目标中找到匹配后点击其中心。
template.click读取窗口是否在前台及其尺寸,决定是否先激活或调整窗口。
window.state把采集到的 X/Y 和朝向组装成标准实时位置,保留采样时间与有效性。
position.make任务结束后向目标窗口发送关闭请求。
window.close对最小化或最大化的目标窗口执行还原。
window.restore在选定目标中回放已经录制并保存的键鼠宏。
macro.play选择已录制的精准输入轨迹,按原时序回放连续拖动或鼠标位移。
input-clip.play读取当前鼠标在目标客户区的位置,再接到移动或坐标计算节点。
mouse.position输入前先激活配置目标,让桌面窗口置前或启动 Android 目标包。
window.activate截取配置目标的当前画面,交给模板识别或 AI 节点。
window.capture把插件给出的 JSON 位置文本按字段映射解析,供导航节点读取。
position.parse选择已配置程序路径的应用目标,在工作流开始后启动该应用,再等待它的窗口出现。
app.launch把按住按键或鼠标键节点输出的租约接入,在操作结束时立即释放。
input.release-held先点击输入框,再向同一目标输入待填写的 Unicode 文本。
keyboard.type-text将识别结果的中心坐标接到位置输入,在配置目标内执行左键点击。
mouse.click在目标区域向下滚动几格,再截取新的画面。
mouse.scroll给出起点和终点,在指定时长内把目标窗口中的对象拖到新位置。
mouse.drag完成 Android 自动化后,停止目标配置指向的应用包。目标必须支持停止应用。
app.stop-target发送少量相对水平位移,用于需要相对输入的目标。
mouse.move-relative选择已经保存的路线,配合持续更新的位置变量依次经过途经点。
navigation.follow-saved-path持续采样位置到字符串变量,接入一条路径,让移动从指定起点按顺序走到终点。
navigation.follow-path用屏幕像素统一目标窗口的位置和尺寸,便于重复操作。
window.move-resize在可直线通行的场景中读取位置变量,逐步接近目标 X/Y。
navigation.move-to将鼠标平滑移到识别坐标,暂不点击。
mouse.move自动化清理时终止配置路径对应的进程,用返回的终止数量确认处理了多少进程。
app.terminate围绕当前位置逐步转动镜头,直到识别到指定模板或达到搜索限制。
navigation.search-template开始识别前将目标窗口最大化。
window.maximize后台任务完成后最小化目标窗口。
window.minimize流程
14 个节点把文件名列表接入列表输入,在循环体中逐个读取文件,并使用当前项与索引。
flow.for-each先开始等待 ready 信号,另一分支发送后再继续。
signal.wait按状态文字分别处理 ready、busy、done;增加 case 数量后填写匹配值,未命中走默认出口。
flow.switch向已经开始监听的同名分支发送刷新通知和附带值。
signal.send把图像是否匹配的布尔结果接到条件,分别连接真、假两个处理路径。
flow.branch主任务沿路径移动时定期检测异常画面,触发后执行处理分支,再恢复主任务。
flow.monitor在主任务期间持续监听名为 refresh 的运行内信号,按顺序处理每次通知。
signal.listen在无需继续处理的分支末尾明确结束该分支。
flow.end-branch检测到必要信息缺失时主动抛出说明文字,让当前分支进入错误处理。
flow.throw点击按钮后等待 2 秒,再继续读取界面状态;时长可填写 2000 毫秒。
flow.delay把“已开始”接到打开窗口或延迟节点,让工作流在启动时进入第一步。
event.run-started把次数设为 3,让循环体中的处理动作依次执行三轮。
flow.repeat给易失败的识别操作设置最多 3 次尝试,将需要重试的失败显式接回重试区域。
flow.retry每隔 1000 毫秒读取一次窗口状态;次数填 0 可持续检测直到停止。
flow.periodic面板
33 个节点旧流程先创建名为 progress 的运行面板,再在相同面板标识下注册组件。
panel.legacy.create等待已注册的“继续”按钮交互;可消费此前已经排队的点击。
panel.legacy.wait显示确认按钮后开始等待一次交互,收到后继续;超时进入失败分支。
panel.wait从已注册的旧面板组件读取开关值,面板和组件标识须与注册时一致。
panel.legacy.read-toggle从已注册的旧面板组件读取数值值,面板和组件标识须与注册时一致。
panel.legacy.read-number从已注册的旧面板组件读取文本值,面板和组件标识须与注册时一致。
panel.legacy.read-text从已管理面板读取用户选择的开关值,作为后续节点输入。
panel.read-toggle从已管理面板读取用户选择的数值值,作为后续节点输入。
panel.read-number从已管理面板读取用户选择的文本值,作为后续节点输入。
panel.read-text将处理结果写入已管理面板的开关组件,让界面显示最新值。
panel.write-toggle将处理结果写入已管理面板的数值组件,让界面显示最新值。
panel.write-number将处理结果写入已管理面板的文本组件,让界面显示最新值。
panel.write-text取得已管理面板交互组件的类型化引用,直接连接到同类面板节点。
panel.ref-event取得已管理面板开关组件的类型化引用,直接连接到同类面板节点。
panel.ref-toggle取得已管理面板日志组件的类型化引用,直接连接到同类面板节点。
panel.ref-log取得已管理面板数值组件的类型化引用,直接连接到同类面板节点。
panel.ref-number取得已管理面板文本组件的类型化引用,直接连接到同类面板节点。
panel.ref-text监听已管理面板的按钮交互,让每次点击按顺序进入事件处理分支。
panel.listen旧流程处理结束后结束运行面板,保留最后显示的结果。
panel.legacy.end用相同面板和组件标识更新已存在的开关组件;先注册,再更新。
panel.legacy.write-toggle用相同面板和组件标识更新已存在的数值组件;先注册,再更新。
panel.legacy.write-number用相同面板和组件标识更新已存在的文本组件;先注册,再更新。
panel.legacy.write-text选择已管理面板并获取它的引用,供后续面板节点复用。
panel.use在工作流开始时显示工作流设置中选定的面板。
panel.show在旧运行面板中显示当前处理数量。
panel.legacy.number在旧运行面板中展示识别出的文字。
panel.legacy.text在旧运行面板中显示“正在读取”一类状态信息。
panel.legacy.status在已创建的运行面板中注册“继续”按钮,再等待其交互。
panel.legacy.button注册一个开关,让用户选择是否启用某个可选步骤。
panel.legacy.toggle注册一个文件名输入框,随后读取用户填写的文字。
panel.legacy.input注册模式下拉框并配置选项,供用户在运行面板中选择。
panel.legacy.select在运行面板日志组件中追加当前处理步骤。
panel.legacy.log将处理进度追加到已管理面板的日志组件。
panel.log数据
106 个节点判断返回文字是否包含 success,再接到分支节点。
text.contains比较新识别的文字与上次记录;不相等时再更新结果。
comparison.not-equal查找文字中第一个冒号的位置,找不到时按 -1 分支处理。
text.index-of将上游结果接入,分别读取模板匹配结果的分数、中心点和边界,把需要的字段连到后续节点。
structure.break-template-match将上游结果接入,分别读取区域的位置、宽高和单位,把需要的字段连到后续节点。
structure.break-region将上游结果接入,分别读取实时位置的坐标、朝向、有效性和采样信息,把需要的字段连到后续节点。
position.break用换行符拆分多行文件名,再逐项处理得到的文字列表。
collection.split将上游结果接入,分别读取文件信息中的大小、扩展名和修改时间,把需要的字段连到后续节点。
structure.break-file-metadata将上游结果接入,分别读取颜色块的面积、中心点和边界,把需要的字段连到后续节点。
structure.break-color-blob将上游结果接入,分别读取坐标中的 X、Y 和单位,把需要的字段连到后续节点。
structure.break-point将上游结果接入,分别读取交互组件引用中的标识和面板信息,把需要的字段连到后续节点。
panel.ref.break-event将上游结果接入,分别读取开关组件引用中的标识和面板信息,把需要的字段连到后续节点。
panel.ref.break-boolean将上游结果接入,分别读取路径的坐标参照和有序点列,把需要的字段连到后续节点。
path.break将上游结果接入,分别读取路径点的标识、坐标与高度,把需要的字段连到后续节点。
path-point.break将上游结果接入,分别读取路径坐标参照的坐标系、单位和轴向,把需要的字段连到后续节点。
path-reference.break将上游结果接入,分别读取面板引用中的标识、名称和版本信息,把需要的字段连到后续节点。
panel.ref.break-panel将上游结果接入,分别读取日志组件引用中的标识和面板信息,把需要的字段连到后续节点。
panel.ref.break-log将上游结果接入,分别读取数值组件引用中的标识和面板信息,把需要的字段连到后续节点。
panel.ref.break-number将上游结果接入,分别读取文本组件引用中的标识和面板信息,把需要的字段连到后续节点。
panel.ref.break-string例如3 乘 4 得到 12,把结果连接到后续数值参数。
math.multiply例如计算 2 的 3 次方得到 8,把结果连接到后续数值参数。
math.power例如10 除以 2 得到 5,把结果连接到后续数值参数。
math.divide将识别分数与阈值比较,分数更高时进入后续操作。
comparison.greater-than判断已处理数量是否达到目标数量,达到后结束分支。
comparison.greater-or-equal比较两个同类型的状态值是否相同,把结果接入分支节点。
comparison.equal围绕识别到的中心点生成一个小区域,缩小下一次识别范围。
geometry.region-around-point选择一个保存的路径内容版本,将其作为路径数据接到其他节点。
path.read将秒表开始时间接入,在任务仍进行时读取已经过的毫秒数。
time.stopwatch-read选择工作流中的状态变量,读取当前值并连到后续数据输入。
state.read把局部录制路径放到世界参照中,显式设置原点与旋转角度。
path.align把原路线倒序,用作返回方向的路线。
path.reverse将坐标参照和有序路径点列表组装成可传递的路径。
path.make在关键步骤记录当前 Unix 毫秒时间,方便后续计算耗时。
time.observe按索引取出路径中的一个点,再拆解它的坐标和标识。
path.point例如2 与 3 相加得到 5,把结果连接到后续数值参数。
math.add例如7 减 2 得到 5,把结果连接到后续数值参数。
math.subtract判断文件名是否以 .png 结尾。
text.ends-with把 -1.9 的小数部分去掉,得到整数 -1。
conversion.truncate-to-integer从列表序号 0 起截取 10 项,分批交给遍历列表节点。
collection.slice从长路线中选取指定起止索引之间的路段。
path.slice从序号 0 起取前 4 个字符;长度填 -1 可取到末尾。
text.substring将 HTTP 返回的 JSON 文本解析为结构化数据,再读取字段。
json.parse例如-3 取绝对值得到 3,把结果连接到后续数值参数。
math.absolute例如计算 9 的平方根得到 3,把结果连接到后续数值参数。
math.square-root判断一行文字是否以 ERROR 开头。
text.starts-with计算当前位置与目标点之间的距离;两个坐标须使用相同单位。
geometry.point-distance判断文件名列表里是否已经包含 report.txt,结果接到分支节点避免重复处理。
collection.contains读取待处理列表的数量,接到日志或数值面板展示任务总数。
collection.length把当前运行中的流收集成可保存的 Blob,并填写内容的媒体类型。
conversion.stream-to-blob将“已经完成”取反,作为尚未完成时继续处理的条件。
logic.not两种识别方式任意一种成功就继续,把结果接到同一个分支条件。
logic.or把“窗口已出现”和“文本匹配”合并为同时满足才继续的条件。
logic.and在模板匹配中心点上加少量水平偏移,点击其旁边的控件。
geometry.offset-point将“文件:”与文件名拼接,输出给日志节点。
text.concat将文字列表 ["红", "绿", "蓝"] 用逗号拼成一行展示文字。
collection.join把同一坐标参照下的两段路径按顺序拼接成一条路线。
path.join在耗时操作之前记录开始时间,连到读取或停止秒表节点。
time.stopwatch-start从 {"user":{"name":"Ada"}} 中用 $.user.name 读取名字。
json.path例如把 3 变号得到 -3,把结果连接到后续数值参数。
math.negate例如从 3 和 7 中取较大值得到 7,把结果连接到后续数值参数。
math.maximum例如从 3 和 7 中取较大值得到 7;输入和结果均保持整数类型,可用于次数或索引。
math.integer-maximum例如从 3 和 7 中取较小值得到 3,把结果连接到后续数值参数。
math.minimum例如从 3 和 7 中取较小值得到 3;输入和结果均保持整数类型,可用于次数或索引。
math.integer-minimum从识别结果列表中读取序号 0 的第一项;先检查列表长度,避免空列表越界。
collection.get例如7 对 3 取余得到 1,把结果连接到后续数值参数。
math.modulo去掉用户输入两端的空白,再做相等比较。
text.trim根据布尔条件在“成功”和“失败”两段同类型文字中选一段显示。
logic.select例如把 3.14159 保留两位小数得到 3.14,把结果连接到后续数值参数。
math.round把 2.6 转成最近的整数 3,交给只接受整数的参数。
conversion.round-to-integer设置 0.5 概率生成布尔样本,接到分支选择两种测试路径。
random.boolean从非空候选文字列表中随机选取一项。
random.choice在设定数值范围内采样,用作测试数据或随机偏移。
random.number在设定范围内采样整数,用作测试数据的随机编号。
random.integer把识别文本中的旧分隔符替换为逗号,按需开启全部替换。
text.replace操作结束后用原开始时间记录最终耗时,再从完成出口继续。
time.stopwatch-stop把文本 "12" 转成整数后用作重复次数。
conversion.string-to-integer例如把 120 限制在 0 到 100 得到 100,把结果连接到后续数值参数。
math.clamp例如把 120 限制在 0 到 100 得到 100;输入和结果均保持整数类型,可用于次数或索引。
math.integer-clamp计算批次数时把 2.2 向上转成整数 3。
conversion.ceiling-to-integer例如3.2 向上取整得到 4,把结果连接到后续数值参数。
math.ceiling把计算出的 3.8 向下转成整数 3,用作列表序号。
conversion.floor-to-integer例如3.7 向下取整得到 3,把结果连接到后续数值参数。
math.floor判断剩余次数是否小于 1,小于时停止后续尝试。
comparison.less-than判断距离是否已小于或等于允许误差。
comparison.less-or-equal把最新识别结果写入同类型状态变量,让其他分支读取。
state.write每完成一个任务就将数值状态加 1,避免并行分支自行读改写造成丢计数。
state.increment例如3 乘 4 得到 12;输入和结果均保持整数类型,可用于次数或索引。
math.integer-multiply例如2 与 3 相加得到 5;输入和结果均保持整数类型,可用于次数或索引。
math.integer-add例如7 减 2 得到 5;输入和结果均保持整数类型,可用于次数或索引。
math.integer-subtract例如-3 取绝对值得到 3;输入和结果均保持整数类型,可用于次数或索引。
math.integer-absolute例如把 3 变号得到 -3;输入和结果均保持整数类型,可用于次数或索引。
math.integer-negate例如7 对 3 取余得到 1;输入和结果均保持整数类型,可用于次数或索引。
math.integer-modulo用 ^[0-9]+$ 判断输入是否整段都是数字字符。
text.regex-match用正则从“订单号:12345”中提取数字部分。
text.regex-extract把结构化结果转成 JSON 文本,交给日志或文本展示节点。
json.stringify将配置文本中的小写 true 转成布尔值,再接到条件输入。
conversion.string-to-boolean把待展示的英文编号统一转大写。
text.uppercase把文本 "12.5" 转成数值,再进行金额或距离计算。
conversion.string-to-number将文件扩展名转小写,再统一比较。
text.lowercase把数值计数转成文字,再和“已处理:”拼接后显示。
conversion.to-string读取状态版本号和修改时间,判断观察期间是否发生变化。
state.metadata读取指定状态最后修改的时间,用于判断它多久没有更新。
state.last-change在待处理文件名列表后追加一个新文件名,使用返回的新列表继续处理。
collection.append计算输入文字长度,判断用户是否提供了内容。
text.length用 X=0.5、Y=0.5、单位 ratio 表示目标画面的中心点。
geometry.make-point需要逐块消费二进制资源时,把持久 Blob 打开成当前运行内使用的流。
conversion.blob-to-stream文件
7 个节点将窗口截图保存到工作流文件区 captures/result.png,便于回看本次结果。
file.save-image读取工作流文件区的 settings.json,再用 JSON 路径节点取得某个字段。
file.read-json读取工作流文件区的 names.txt,按换行拆分后遍历各行。
file.read-text从工作流文件区读取 templates/button.png,作为模板匹配的模板图像。
file.load-image读取文件大小和修改时间,在加载大文件前先判断它是否符合要求。
file.stat在关键步骤后记录“文件读取完成”,用日志级别区分正常信息和警告。
log.write在已配置基础 URL 的 HTTP 目标上读取 /status,再解析返回的 JSON 文本。
http.get视觉
5 个节点对比操作前后两张截图的同一区域,读取画面变化程度。
vision.compare-images查找截图中所有相同图标,返回的列表可接遍历节点逐个处理。
vision.find-template-matches在指定颜色范围内寻找连通色块,再按面积或中心位置筛选目标。
vision.find-color-blobs统计截图区域内红色像素所占比例,用于判断颜色指示是否出现。
vision.analyze-color在给定截图中寻找按钮模板的最佳匹配,再读取匹配分数和中心位置。
vision.match-templateAI
2 个节点其他
5 个节点将上游结果接入,分别读取二维码结果中的文字与定位点列表,把需要的字段连到后续节点。
qr.break配置目标区域、内外颜色范围和左右按键,持续调整窄指针使其靠近宽目标条。
dual-color-bar.control把截图及二维码所在区域接入,得到全部识别出的二维码列表。
qr.decode将结构化输入交给隔离 JavaScript 脚本进行字段整理,再输出 JSON 结果。
script.execute对给定截图检测双色条,读取内条位置、外条宽度和置信度供后续控制判断。
dual-color-bar.track