网址 → Markdown
无需打开交互浏览器。可直接导入运行;修改导出格式即可体验 PDF 或 PNG。
开始 → 网址导出 → 输出结果 → 结束
拓睿思 · 节点文档
把每一步用明白。查找节点、理解参数,再下载完整流程开始体验。
NODE HANDBOOK
按用途查找节点,照着示例填写参数。每一项都包含操作步骤、适用场景和结果说明。
第一次编排时,先了解这些通用规则。
流程设置中的默认输入通过 ${input.url} 等读取,运行时可覆盖。输出变量名填 result,通过 ${vars.result} 引用。变量必须先写入再使用。
完整引用 "${vars.rows}" 保留数组或对象类型;"关键词:${input.keyword}" 会转成文本。JSON 参数编辑器中字符串需要双引号,布尔值和数字不加引号。不支持在引用中计算表达式。
列表循环体可读 ${item}、${item.title} 与从 0 开始的 ${index}。循环的 done 路径不要依赖循环体局部 item。
页面节点需要先打开网页或切换到已命名页面。可在暂停调试画面中拾取定位器,也可填写 CSS(#keyword、button[type="submit"])或 Playwright 支持的 text=提交 等定位器。
点击、填写和单值提取尽量唯一匹配;列表提取允许多个匹配。网页脚本中的 document.querySelector 只接受 CSS,不接受 text= 定位器。
动态页面先等目标元素或接口;打开网页只等待 DOM 就绪。初始页面名是 main,弹窗通过点击并打开页面或等待并切换页面命名。
普通节点的 next 表示下一步。条件节点只执行 true 或 false 的一条路径。foreach / forRange 的 body 执行循环体,done 执行循环结束后的步骤。异常处理的 try 执行保护段,next 执行成功路径,failed 执行失败路径。
循环体末端必须使用“本次循环结束”,next 连回所属循环;不要直接画普通节点回边。接口和鼠标动作完成后,使用“数据断言”确认业务结果。
只取接口数据用网络请求;复用页面登录 Cookie 用浏览器会话请求;读取页面本来就发出的请求用响应监听,必须先注册再触发。
网址导出独立访问 URL,文本默认无需布局,PDF/PNG 自动渲染。当前页面 PDF / 保存截图保留已登录和交互后的页面状态。
纯数据、独立 HTTP 请求、网址导出和时间等待无需启动交互浏览器。文件描述不是文件正文;PDF/PNG 的实际文件到执行记录产物中下载。下载的完整流程示例可在“流程管理 → 导入流程”使用,example.com 的真实页面示例可直接试跑;业务接口示例需替换为自己的地址。
配置代理、拖动元素、图像位置匹配、图像坐标映射、区域文字识别需要有效 Pro 及以上订阅,并通过已授权 Studio 执行。免费用户可阅读本文档,不能添加、保存或运行包含这些节点的流程。
识别与输入完成不代表业务校验通过;请使用条件、响应或断言检查最终结果。
下载后在“流程管理 → 导入流程”中打开,先检查输入和参数再运行。
无需打开交互浏览器。可直接导入运行;修改导出格式即可体验 PDF 或 PNG。
开始 → 网址导出 → 输出结果 → 结束
先等待页面内容再导出。可在等待之前加入自己的登录与查询步骤。
开始 → 打开网页 → 等待 → 当前页面 PDF → 输出结果 → 结束
使用内置样例数据,可直接导入运行。实际业务中可用接口或提取列表节点替换“设置变量”。
开始 → 设置变量 → 遍历列表(body → 输出结果 → 本次循环结束 ↩;done → 结束)
配置结构可直接导入。运行前替换 API URL;示例约定响应为 {code: 200, data: ...}。
开始 → 网络请求 → 数据断言 → JSON 处理 → 保存文件 → 输出结果 → 结束
显示 43 / 43 个节点
流程 / start
流程唯一入口
此节点没有配置参数。
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{}不写入变量;沿 next 出口继续。
next · 下一步流程 / end
完成当前流程
此节点没有配置参数。
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{}结束当前路径;不自动输出所有变量。
高级节点 / setProxy
配置 moli 引擎代理,后续页面请求及网址导出使用该代理;空值关闭代理。
需要有效 Pro 及以上订阅,并通过已授权的拓睿思执行。免费用户可阅读说明,不能使用此节点。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
代理地址proxy支持 host:port、HTTP(S)、SOCKS4/5 及用户名密码,可引用流程变量;留空关闭代理。不影响独立网络请求节点。 | 文本 | "http://127.0.0.1:8080" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"proxy": "http://127.0.0.1:8080"
}更新本次运行的 moli 引擎代理,不写入变量;保留现有页面及登录状态。
next · 下一步浏览器 / goto
打开网址并等待 DOM 就绪
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
网址url必填文本 | 文本 | "${input.url}" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"url": "https://example.com"
}更新当前页面,等待 DOMContentLoaded;不写入变量。
next · 下一步网络与文件 / dump
使用 Moli 原生 dump 导出独立网址;文本默认无需布局,PDF/图片自动渲染。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
网址url必填文本 | 文本 | "${input.url}" |
导出格式format | 选项markdown · Markdownjson · JSONhtml · HTMLpdf · PDFscreenshot · PNG(视口)screenshot_full · PNG(完整页面)semantic_tree · 语义树 JSONsemantic_tree_text · 语义树文本 | "markdown" |
渲染方式render | 选项auto · 自动(仅 PDF / PNG 渲染)enabled · 启用布局渲染 | "auto" |
禁用页面 JSdisableJs | 布尔值 | false |
产物名称(自动扩展名)name必填文本 | 文本 | "page" |
超时(毫秒)timeoutMs | 数字 | 30000 |
最大字节数maxBytes | 数字 | 1000000 |
保存到变量variable必填文本 | 文本 | "dumpResult" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"url": "https://example.com",
"format": "markdown",
"render": "auto",
"disableJs": false,
"name": "article",
"timeoutMs": 30000,
"maxBytes": 1000000,
"variable": "dumpResult"
}${vars.dumpResult} 为 {format, rendered, body, artifact}。文本的 body 是字符串;json/semantic_tree 为原生 JSON;PDF/PNG 的 body 为 null。全部格式都会保存可下载产物。
next · 下一步浏览器 / pdf
把当前页面保存为 PDF,保留已登录及交互后的页面状态。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
产物名称(自动 .pdf)name必填文本 | 文本 | "page" |
保存到变量variable必填文本 | 文本 | "pdfFile" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"name": "report",
"variable": "pdfFile"
}变量保存 {name, mime, size, sha256} 文件描述,文件位于本次运行产物。
next · 下一步浏览器 / fill
定位并填写输入框
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
内容value | 文本 | "${input.keyword}" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "#keyword",
"value": "${input.keyword}"
}修改输入框内容,不写入变量。
next · 下一步浏览器 / click
通过 Playwright 定位并点击
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "button[type=\"submit\"]"
}完成点击;不保证业务处理成功。
next · 下一步高级节点 / drag
定位按下点,按范围内的平滑变速轨迹拖动到指定坐标;完成输入不代表业务验证成功。
需要有效 Pro 及以上订阅,并通过已授权的拓睿思执行。免费用户可阅读说明,不能使用此节点。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
按下位置start | JSON | {
"mode": "center"
} |
拖动终点target | JSON | {
"mode": "offset",
"x": 180,
"y": 0
} |
允许位移范围bounds | JSON | {
"minX": 0,
"maxX": 300,
"minY": -3,
"maxY": 3
} |
轨迹配置trajectory | JSON | {
"profile": "natural",
"durationMs": {
"min": 800,
"max": 1300
},
"steps": 60,
"jitterPx": 1,
"overshootPx": 0,
"holdBeforeMs": 80,
"holdAfterMs": 60,
"seed": null
} |
超时(毫秒)timeoutMs | 数字 | 30000 |
保存到变量variable必填文本 | 文本 | "dragResult" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "#slider",
"start": {
"mode": "center"
},
"target": {
"mode": "offset",
"x": 180,
"y": 0
},
"bounds": {
"minX": 0,
"maxX": 300,
"minY": -3,
"maxY": 3
},
"trajectory": {
"profile": "natural",
"durationMs": {
"min": 800,
"max": 1300
},
"steps": 60,
"jitterPx": 1,
"overshootPx": 0,
"holdBeforeMs": 80,
"holdAfterMs": 60,
"seed": null
},
"timeoutMs": 30000,
"variable": "dragResult"
}dragResult 保存本次拖动的执行信息;完成鼠标输入不代表业务校验通过。
next · 下一步浏览器 / clickResponse
先监听接口,再点击,响应 JSON 写入变量
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
响应 URL 包含urlPattern必填文本 | 文本 | "/api/" |
保存到变量variable必填文本 | 文本 | "result" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "#search",
"urlPattern": "/api/search",
"variable": "searchResult"
}${vars.searchResult} 直接是响应 JSON 正文,不需要再取 body。非 2xx 会失败。
next · 下一步浏览器 / clickPopup
等待弹窗,命名并切换到新页面
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
页面名称pageName必填文本 | 文本 | "popup" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "a[target=\"_blank\"]",
"pageName": "detail"
}新页面成为当前页面,可通过 detail 名称再次切换。
next · 下一步网络与文件 / watchResponse
先监听再导航/点击;捕获当前会话及弹窗的一个匹配响应,不重复发请求。超时从注册开始计算。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
监听名称name必填文本 | 文本 | "response" |
响应 URLurlPattern必填文本 | 文本 | "/api/user/getInfo" |
URL 匹配match | 选项includes · 包含exact · 完全匹配 | "includes" |
请求方法method | 选项GETPOSTPUTPATCHDELETEHEADANY · 任意方法 | "GET" |
资源类型resourceType | 选项any · 任意类型xhr · XHRfetch · Fetchdocument · 文档image · 图片script · 脚本stylesheet · 样式表font · 字体media · 媒体other · 其他 | "any" |
正文类型format | 选项json · JSONtext · UTF-8 文本file · 文件 | "json" |
文件名(含扩展名)filename必填文本 | 文本 | "response.bin" |
预期 HTTP 状态(0 为任意 2xx)status | 数字 | 200 |
超时(毫秒)timeoutMs | 数字 | 30000 |
最大字节数maxBytes | 数字 | 1000000 |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"name": "search",
"urlPattern": "/api/search",
"match": "includes",
"method": "POST",
"resourceType": "fetch",
"format": "json",
"filename": "response.bin",
"status": 200,
"timeoutMs": 30000,
"maxBytes": 1000000
}注册一个待消费监听,不立即写入变量。format=file 时在读取阶段返回文件产物。
next · 下一步网络与文件 / awaitResponse
消费一次已注册的监听,保存响应元数据及 body;文件正文保存为产物描述。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
监听名称name必填文本 | 文本 | "response" |
保存到变量variable必填文本 | 文本 | "response" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"name": "search",
"variable": "response"
}${vars.response} 含响应元数据和 body;JSON 正文通过 ${vars.response.body} 读取,文件类型的 body 为文件描述。
next · 下一步网络与文件 / browserRequest
在当前页面执行 fetch,复用 Moli 网络与 Cookie;遵守 CORS,失败不自动重试。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
请求 URLurl必填文本 | 文本 | "${input.apiUrl}" |
请求方法method | 选项GETPOSTPUTPATCHDELETEHEAD | "GET" |
请求头(JSON 对象)headers | JSON | {} |
请求正文(JSON 或文本;null 为无)body | JSON | null |
正文类型format | 选项json · JSONtext · UTF-8 文本 | "json" |
超时(毫秒)timeoutMs | 数字 | 30000 |
最大字节数maxBytes | 数字 | 1000000 |
保存到变量variable必填文本 | 文本 | "response" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"url": "https://example.com/api/items",
"method": "GET",
"headers": {},
"body": null,
"format": "json",
"timeoutMs": 30000,
"maxBytes": 1000000,
"variable": "response"
}保存 {url, status, method, contentType, body},业务内容在 body 中;非 2xx 会失败。
next · 下一步网络与文件 / httpRequest
独立 HTTP Client,直接请求外部系统,不受页面 CORS 限制,不携带浏览器 Cookie。不自动重试或跟随重定向。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
请求 URLurl必填文本填写完整 HTTP(S) 地址,可引用输入或变量,例如 https://api.example.com/items。 | 文本 | "${input.apiUrl}" |
请求方法method | 选项GETPOSTPUTPATCHDELETEHEADOPTIONS | "GET" |
请求头(JSON 对象)headers例如 {"Authorization":"Bearer ${input.token}"},也可填写完整变量引用。 | JSON | {} |
请求正文(JSON 或文本;null 为无)body对象自动发送为 JSON;原始文本需加双引号。支持变量引用,GET/HEAD 请使用 null。 | JSON | null |
响应格式format | 选项json · JSONtext · UTF-8 文本 | "json" |
非 2xx 状态时失败failOnHttpError关闭后可用响应的 status、ok 和 body 做条件分支。重定向不会自动跟随。 | 布尔值 | true |
超时(毫秒)timeoutMs | 数字 | 30000 |
最大字节数maxBytes | 数字 | 1000000 |
保存到变量variable必填文本通过 ${vars.response.status}、${vars.response.headers}、${vars.response.body} 读取结果。 | 文本 | "response" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"url": "https://example.com/api/items",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": {
"keyword": "${input.keyword}"
},
"format": "json",
"failOnHttpError": true,
"timeoutMs": 30000,
"maxBytes": 1000000,
"variable": "response"
}保存 {url, status, ok, headers, body} 等响应信息,业务内容在 body 中。
next · 下一步网络与文件 / downloadResource
当前页面 fetch 已知 PDF/图片 URL 并保存,遵守 CORS;已加载资源可用响应监听避免重复请求。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
资源 URLurl必填文本 | 文本 | "${input.resourceUrl}" |
文件名(含扩展名)filename必填文本 | 文本 | "resource.pdf" |
超时(毫秒)timeoutMs | 数字 | 30000 |
最大字节数maxBytes | 数字 | 10000000 |
保存到变量variable必填文本 | 文本 | "file" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"url": "https://example.com/report.pdf",
"filename": "report.pdf",
"timeoutMs": 30000,
"maxBytes": 10000000,
"variable": "file"
}file 变量保存 {name, mime, size, sha256}。
next · 下一步网络与文件 / clickDownload
先等待浏览器下载事件再点击;适合 attachment 或 download 链接,文件保存到本次运行。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
文件名(含扩展名)filename必填文本 | 文本 | "download.pdf" |
超时(毫秒)timeoutMs | 数字 | 30000 |
最大字节数maxBytes | 数字 | 10000000 |
保存到变量variable必填文本 | 文本 | "file" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "#export",
"filename": "report.pdf",
"timeoutMs": 30000,
"maxBytes": 10000000,
"variable": "file"
}file 变量保存下载文件的描述;文件在本次运行产物中。
next · 下一步网络与文件 / saveFile
将 JSON、UTF-8 文本或 base64 保存为运行产物,返回文件名、大小与 SHA-256。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
文件名(含扩展名)filename必填文本 | 文本 | "data.json" |
文件内容编码encoding | 选项json · JSONtext · UTF-8 文本base64 | "json" |
文件内容value | JSON | "${vars.result}" |
保存到变量variable必填文本 | 文本 | "file" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"filename": "data.json",
"encoding": "json",
"value": "${vars.result}",
"variable": "file"
}file 变量保存文件名、MIME、大小、SHA-256 等描述。
next · 下一步数据 / jsonData
解析、序列化或按点路径取值(如 data.rows.0);缺失路径返回 null,禁止执行表达式。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
处理方式mode | 选项pick · 按路径取值parse · 解析 JSON 文本stringify · 转为 JSON 文本 | "pick" |
输入值value | JSON | "${vars.response.body}" |
点路径(空为整体)path | 文本 | "data" |
保存到变量variable必填文本 | 文本 | "data" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"mode": "pick",
"value": "${vars.response.body}",
"path": "data.rows",
"variable": "rows"
}保存提取值、解析值或序列化后的字符串;pick 的缺失路径返回 null。
next · 下一步数据 / assert
验证业务 code、登录态或数据完整性,不满足时明确停止当前流程。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
左值left | JSON | "${vars.response.body.code}" |
比较方式operator | 选项equals · 等于notEquals · 不等于contains · 包含greaterThan · 大于exists · 存在empty · 为空 | "equals" |
右值right | JSON | 200 |
失败提示message必填文本 | 文本 | "数据校验失败" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"left": "${vars.response.body.code}",
"operator": "equals",
"right": 200,
"message": "业务接口返回失败"
}满足时继续;不满足时以给定提示停止流程,不写入变量。
next · 下一步浏览器 / closePages
关闭当前页,或保留指定命名页并关闭其余页面,控制弹窗数量。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
关闭范围mode | 选项others · 保留指定页,关闭其余current · 关闭当前页 | "others" |
保留/切回页面名称pageName必填文本 | 文本 | "main" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"mode": "others",
"pageName": "main"
}关闭指定范围页面并切换到保留页。
next · 下一步浏览器 / select
选择原生 select 选项值
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
选项值value必填文本 | 文本 | "" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "#status",
"value": "published"
}更新选择值,不写入变量。
next · 下一步浏览器 / check
设置复选框或单选框状态
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
勾选checked | 布尔值 | true |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "#remember",
"checked": true
}把控件设置到目标状态,不是无条件反转。
next · 下一步浏览器 / press
向元素发送按键,例如 Enter
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
按键key必填文本 | 文本 | "Enter" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "#keyword",
"key": "Enter"
}向目标发送键盘输入,不写入变量。
next · 下一步浏览器 / scroll
按像素滚动当前页面
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
水平距离x | 数字 | 0 |
垂直距离y | 数字 | 500 |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"x": 0,
"y": 600
}滚动当前 window,不写入变量。
next · 下一步浏览器 / wait
等待元素、网址或指定时间
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
等待类型mode | 选项selector · 页面元素url · 网址time · 时长 | "selector" |
定位器 / URL / 毫秒value必填文本 | 文本 | "body" |
元素状态state | 选项visible · 可见attached · 已挂载hidden · 隐藏detached · 已移除 | "visible" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"mode": "selector",
"value": "#results",
"state": "visible"
}条件达到后继续,不写入变量。
next · 下一步数据 / extract
提取一个元素的文本或属性
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
属性名(空为文本)attribute | 文本 | "" |
保存到变量variable必填文本 | 文本 | "result" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": "h1",
"attribute": "",
"variable": "title"
}保存文本字符串;属性不存在时可能为 null。
next · 下一步数据 / extractList
按定位器提取文本数组
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
元素定位器selector必填文本 | 文本 | "body" |
保存到变量variable必填文本 | 文本 | "rows" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"selector": ".result .title",
"variable": "rows"
}${vars.rows} 为文本数组,未匹配到元素时为空数组。
next · 下一步数据 / setVariable
保存 JSON 值或变量引用
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
保存到变量variable必填文本 | 文本 | "result" |
值value | JSON | "" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"variable": "result",
"value": {
"title": "${vars.title}",
"source": "${input.url}"
}
}写入或覆盖同名流程变量。
next · 下一步流程 / condition
按值比较,走 true 或 false 出口
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
左值left | JSON | "${vars.result}" |
比较方式operator | 选项equals · 等于notEquals · 不等于contains · 包含greaterThan · 大于exists · 存在empty · 为空 | "equals" |
右值right | JSON | "" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"left": "${vars.response.body.code}",
"operator": "equals",
"right": 200
}只执行一个出口:true 或 false。
true · 满足条件false · 否则流程 / errorHandler
保护一组节点,按错误类型退避重试,或从失败出口继续处理。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
错误变量variable必填文本 | 文本 | "error" |
最多额外重试maxRetries | 数字 | 0 |
可重试的错误类型retryOn | JSON | [] |
初始退避时长initialDelayMs | 数字 | 1000 |
最大退避时长maxDelayMs | 数字 | 120000 |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"variable": "error",
"maxRetries": 3,
"retryOn": [
"timeout",
"network",
"rate_limit"
],
"initialDelayMs": 1000,
"maxDelayMs": 120000
}成功时错误变量为 null。失败出口可读取 type、message、nodeId、attempts、httpStatus 和 retryAfterMs。
next · 下一步try · tryfailed · failed流程 / tryEnd
结束当前保护段,回到异常处理容器的成功出口。
此节点没有配置参数。
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{}完成当前保护段,不写入变量。
流程 / foreach
body 中使用 ${item} 和 ${index},循环结束节点连回本节点
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
列表items | JSON | "${vars.rows}" |
最大条数(1–1000)maxItems | 数字 | 100 |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"items": "${vars.rows}",
"maxItems": 100
}顺序执行每一项;列表为空时直接走 done。
body · 循环体done · 循环结束流程 / loopEnd
next 连回所属遍历节点
此节点没有配置参数。
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{}结束当前轮循环体,返回所属循环进行下一轮。
next · 下一步流程 / forRange
按次数或包含终点的区间循环;支持递增/递减。循环值保存到指定变量,body 使用循环结束节点返回。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
循环方式mode | 选项count · 按次数end · 按结束值 | "count" |
起始值start | JSON | 1 |
结束值(含)end | JSON | 3 |
次数count | JSON | 3 |
步长step | JSON | 1 |
循环值类型valueType | 选项number · 数字string · 文本 | "number" |
保存到变量variable必填文本 | 文本 | "number" |
最大次数(1–1000)maxIterations | 数字 | 100 |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"mode": "count",
"start": 1,
"end": 3,
"count": 3,
"step": 1,
"valueType": "number",
"variable": "page",
"maxIterations": 100
}每次把当前值写入 ${vars.page};body 也能读取 ${item} 与 ${index}。
body · 循环体done · 循环结束浏览器 / waitPage
按明确 URL 查找已经打开或随后打开的页面,命名并切换;多个页面匹配时失败。适合先读接口再决定是否接管弹窗。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
页面 URLurlPattern必填文本 | 文本 | "${input.origin}/list" |
URL 匹配match | 选项exact · 完全匹配path · 路径匹配includes · 包含 | "exact" |
页面名称pageName必填文本 | 文本 | "results" |
超时(毫秒)timeoutMs | 数字 | 30000 |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"urlPattern": "https://example.com/results",
"match": "path",
"pageName": "results",
"timeoutMs": 30000
}匹配页成为当前页面,可按 results 名称切换。
next · 下一步浏览器 / screenshot
生成截图并在运行结果中展示
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
截图名称name必填文本 | 文本 | "page" |
完整页面fullPage | 布尔值 | false |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"name": "results",
"fullPage": true
}保存 PNG 运行产物,不写入命名变量。
next · 下一步高级节点 / imageMatch
通过 Studio Server 进行纯 Rust 模板匹配,返回原图坐标;低分或歧义时不返回有效目标。
需要有效 Pro 及以上订阅,并通过已授权的拓睿思执行。免费用户可阅读说明,不能使用此节点。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
背景图来源background | JSON | {
"type": "selector",
"selector": "#background"
} |
模板图来源template | JSON | {
"type": "selector",
"selector": "#piece"
} |
匹配算法algorithm | 选项edge_ccorr_normed · 边缘归一化互相关gray_ccorr_normed · 灰度归一化互相关alpha_contour_chamfer · 透明轮廓距离 | "edge_ccorr_normed" |
模板遮罩mask | JSON | {
"mode": "alpha",
"threshold": 16
} |
搜索范围与阈值search | JSON | {
"roi": null,
"scales": [
1
],
"maxCandidates": 3,
"minScore": 0.8,
"minPeakGap": 0.03,
"maxDistance": 2
} |
边缘参数edge | JSON | {
"method": "canny",
"lowThreshold": 50,
"highThreshold": 120
} |
超时(毫秒)timeoutMs | 数字 | 30000 |
保存到变量variable必填文本 | 文本 | "imageMatch" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"background": {
"type": "selector",
"selector": "#background"
},
"template": {
"type": "selector",
"selector": "#piece"
},
"algorithm": "edge_ccorr_normed",
"mask": {
"mode": "alpha",
"threshold": 16
},
"search": {
"roi": null,
"scales": [
1
],
"maxCandidates": 3,
"minScore": 0.8,
"minPeakGap": 0.03,
"maxDistance": 2
},
"edge": {
"method": "canny",
"lowThreshold": 50,
"highThreshold": 120
},
"timeoutMs": 30000,
"variable": "imageMatch"
}保存 matched、best 等匹配信息;坐标属于原始图像像素,不能直接作为视口拖动坐标。
next · 下一步高级节点 / mapImagePoint
将原图匹配锚点换算为视口坐标和拖动位移,并绑定页面几何校验信息。
需要有效 Pro 及以上订阅,并通过已授权的拓睿思执行。免费用户可阅读说明,不能使用此节点。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
匹配结果match | JSON | "${vars.imageMatch}" |
背景图元素imageSelector必填文本 | 文本 | "#background" |
移动图块元素(空为绝对目标)movingSelector | 文本 | "#piece" |
原模板锚点anchor | JSON | {
"x": 0,
"y": 0
} |
指针/图块位移比例motionGain | JSON | {
"x": 1,
"y": 1
} |
超时(毫秒)timeoutMs | 数字 | 30000 |
保存到变量variable必填文本 | 文本 | "dragTarget" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"match": "${vars.imageMatch}",
"imageSelector": "#background",
"movingSelector": "#piece",
"anchor": {
"x": 0,
"y": 0
},
"motionGain": {
"x": 1,
"y": 1
},
"timeoutMs": 30000,
"variable": "dragTarget"
}保存包含 target 的映射结果,处理透明裁剪、显示比例和滚动,并绑定页面几何校验信息。
next · 下一步高级节点 / ocr
截取元素或页面 CSS 坐标区域,调用 Moli OCR,返回文字和文本块;首次可能准备模型
需要有效 Pro 及以上订阅,并通过已授权的拓睿思执行。免费用户可阅读说明,不能使用此节点。
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
识别区域mode | 选项selector · 页面元素region · 矩形区域 | "selector" |
元素定位器selector | 文本 | "body" |
区域(页面 CSS 像素)region | JSON | {
"x": 0,
"y": 0,
"width": 300,
"height": 150
} |
保存到变量variable必填文本 | 文本 | "ocr" |
截图名称name必填文本 | 文本 | "ocr" |
OCR 超时(毫秒,含模型准备)timeoutMs | 数字 | 180000 |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"mode": "selector",
"selector": "#receipt",
"region": {
"x": 0,
"y": 0,
"width": 300,
"height": 150
},
"variable": "ocr",
"name": "receipt",
"timeoutMs": 180000
}保存包含 text、blocks 的识别结果,并保存识别区域截图。
next · 下一步浏览器 / switchPage
切回 main 或已命名的弹窗
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
页面名称pageName必填文本 | 文本 | "main" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"pageName": "main"
}改变当前页面,不重新打开页面。
next · 下一步数据 / pageScript
在网页中执行表达式,可通过 arg 访问传入值
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
JavaScript 表达式source必填文本 | 多行文本 | "document.title" |
arg 参数argument | JSON | null |
保存到变量variable必填文本 | 文本 | "result" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"source": "Array.from(document.querySelectorAll(arg.selector), el => ({title: el.textContent, href: el.href}))",
"argument": {
"selector": "a.result"
},
"variable": "rows"
}保存表达式返回值。
next · 下一步数据 / output
将值加入本次运行的结果
| 参数 | 类型 / 可选值 | 默认值 |
|---|---|---|
输出内容value | JSON | "${vars.result}" |
这是节点的 config 配置。按参数名在配置区填写;JSON 参数需填写合法 JSON。导入完整流程请使用上方示例。
{
"value": "${vars.result}"
}将一个值追加到本次运行的输出列表;不会覆盖之前的输出。
next · 下一步