必须提前画清页面流转逻辑,区分用户点击、表单提交、条件判断三类跳转并标注类型;用YAML定义pages.yaml描述节点与有向边,trigger须为唯一CSS选择器,submit_to需与服务端重定向一致;通过dry-run、DevTools图谱、手动测试验证闭环;SPA需启用spa_mode并适配路由提取,跨域iframe须注入bridge脚本。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要让AionClaw在网页自动化中准确触发跳转、不卡在错误页面、不重复提交或漏跳环节,必须提前把页面之间的流转逻辑画清楚——这不是写个href链接就行的事,而是要匹配AionClaw的导航意图识别机制。
明确跳转动因与目标类型
先区分三类跳转本质:用户点击触发(如导航菜单)、表单提交后响应跳转(如登录成功跳首页)、脚本条件判断跳转(如未登录自动跳登录页)。AionClaw对每类的处理策略不同,【必须在编写流程前标注每处跳转属于哪一类,否则后续动作会误判上下文】。
静态HTML链接跳转可直接复用;表单类跳转需额外声明response_wait和redirect_timeout参数;条件跳转必须绑定page_condition断言,否则AionClaw无法感知页面是否真的已切换。
用YAML定义页面关系图谱
在项目根目录新建pages.yaml,用缩进结构描述页面节点与有向边:
home:
links:
- {to: product_list, trigger: "nav#products"}
- {to: login, trigger: "button.login-btn"}
product_list:
links:
- {to: product_detail, trigger: "a.product-card", param_from: "data-id"}
login:
submit_to: home
on_fail: login_error
注意:trigger值必须是CSS选择器且能唯一命中;param_from用于提取URL参数或data属性,供下游页面使用;submit_to表示表单提交后的预期跳转目标,AionClaw会自动等待并校验该页面加载完成。
验证跳转链路是否闭环
方法一:用claw run --dry-run pages.yaml模拟执行路径
方法二:在浏览器中打开AionClaw DevTools → Navigation Graph → 粘贴YAML内容 → 点击「Build」生成可视化拓扑图。检查是否存在孤点(无入边也无出边)、死循环(A→B→A)、断裂(某页有出边但目标页未定义)。
方法三:手动执行claw test -p login -n 3,观察三次运行中是否每次都稳定跳转到home页。若出现一次跳到404或卡在loading,则说明login页面的submit_to声明与实际服务端重定向不一致。
处理跨域与SPA路由跳转
第一步:识别当前网站是否为单页应用(SPA)。打开浏览器开发者工具 → Network → 切换页面,若无完整HTML响应而只有XHR/JSON返回,则启用spa_mode: true配置项。
第二步:SPA需改用hash或history模式声明路由。例如Vue Router history模式下,product_detail实际URL为/example/#/product/123,此时YAML中不能写to: product_detail,而要写to: "/product/{id}",并在param_from中指定从URL path提取id。
第三步:跨域iframe内页面无法被AionClaw直接监听跳转,必须由主站注入bridge脚本,通过window.postMessage通知AionClaw“子页面已就绪”。【未注入bridge时,AionClaw会永远等待iframe内页面load事件,导致超时失败】











