使用冰狐js完成同城自动评论脚本 最近想给本地业务做点同城流量手动刷抖音评论太折磨人了于是研究了一套自动化方案。但是吧手操这玩意挺麻烦的研究了套脚本出来只不过功能比较简单只能检测是否在抖音然后打开评论区然后发指定好的话术啥的。一开始是想用 Auto.js 或按键精灵但环境配置挺折腾。后来试了几个基于无障碍的 JS 框架然后用冰狐的UI 编排还有原生 JS 执行的工具至少界面挺简单的。调试成本低适合快速迭代这套脚本是我目前跑得比较稳的一个版本核心逻辑是启动抖音 → 切到指定城市比如武汉判断是否在「同城」feed检测是否存在广告、是否有评论入口满足条件后自动评论并返回当然你有代码也能直接复制上去用。function main() { console.log(脚本开始...); // 1. 恢复之前的启动逻辑 // 等待抖音启动条件可以是首页的“推荐”或“关注”或者同城页的按钮 // 这里使用 txt:推荐|txt:关注|txt:同城 只要出现一个就算启动成功 var startRes launchApp(com.ss.android.ugc.aweme, txt:推荐|txt:关注); if (startRes 1) { console.log(进入抖音成功); // 2. 切换城市 var targetCity 武汉; console.log(准备切换城市至: targetCity); changeCity(targetCity); // 3. 主循环 var index 0; while (index 20) { console.log(--- 第 (index 1) 次循环 ---); checkAndComment(); index; // 随机休眠模拟真人 sleep(parseInt(Math.random() * 2000 2000)); } console.log(任务结束); } else { console.log(启动抖音失败); } } // 核心逻辑 function checkAndComment() { // 条件1检测广告 (id: qdk) var hasAd findView(id:com.ss.android.ugc.aweme:id/qdk); if (hasAd) { console.log(检测到广告 (qdk)跳过); scrollVideo(); return; } // 条件2检测是否在同城界面 (id: s71) // 如果 findView 报错或返回 null说明不在同城 var isTongcheng findView(id:com.ss.android.ugc.aweme:id/s71); if (!isTongcheng) { // 备用方案找文本 同城发现 isTongcheng findView(text:同城发现); } if (!isTongcheng) { console.log(未在同城界面 (未找到 s71 或 同城发现)); // 尝试点击底部“同城”Tab 回去 clickPoint(602, 344); // 点击您提供的同城发现坐标或者底部的同城Tab sleep(2000); // 再次检测如果还不行就下滑 if (!findView(id:com.ss.android.ugc.aweme:id/s71)) { scrollVideo(); return; } } // 条件3检测评论区按钮 (id: ewd) var hasCommentBtn findView(id:com.ss.android.ugc.aweme:id/ewd); if (!hasCommentBtn) { console.log(未找到评论按钮 (ewd)); scrollVideo(); return; } // 三者满足 console.log(条件满足开始评论...); doComment(); back(); sleep(1500); scrollVideo(); } // 功能函数 function changeCity(city) { console.log(执行城市切换...); // 1. 点击城市按钮坐标 (832, 195) // 【修复】使用 clickPoint 而不是 click解决 id is null 报错 console.log(点击城市按钮坐标: 832, 195); clickPoint(832, 195); sleep(2000); // 2. 点击搜索按钮 (id: xy9) var searchBtn findView(id:com.ss.android.ugc.aweme:id/xy9); if (searchBtn) { // 尝试点击找到的对象 // 如果对象不能直接点用坐标。这里先尝试用 ID 点击 click(id:com.ss.android.ugc.aweme:id/xy9); console.log(已点击搜索 (xy9)); } else { console.log(未找到搜索按钮 (xy9)); return; } sleep(1500); // 3. 输入城市名 var inputBox findView(id:com.ss.android.ugc.aweme:id/et_search_kw); if (inputBox) { click(id:com.ss.android.ugc.aweme:id/et_search_kw); // 先点击聚焦 sleep(500); inputText(city); // 使用 inputText console.log(已输入: city); } else { console.log(未找到输入框); return; } sleep(1500); // 4. 选择搜索结果 var resultClicked click(text: city); if (resultClicked) { console.log(已选择城市结果: city); sleep(3000); } else { console.log(未找到结果尝试点击搜索); click(text:搜索); sleep(3000); } } function doComment() { // 1. 点击评论区 (id: ewd) click(id:com.ss.android.ugc.aweme:id/ewd); console.log(已点击评论区 (ewd)); sleep(1500); // 2. 输入文本 (id: eoy) click(id:com.ss.android.ugc.aweme:id/eoy); sleep(500); inputText(你好); console.log(已输入评论); sleep(1000); // 3. 点击发送 (id: es7) var sendSuccess click(id:com.ss.android.ugc.aweme:id/es7); if (!sendSuccess) { sendSuccess click(text:发送); } if (sendSuccess) { console.log(发送成功 (es7)); } else { console.log(发送失败); } sleep(2000); } function scrollVideo() { // 使用您成功的 scroll 示例 scroll(up, {distance: Math.random() * 0.5 0.45, duration: parseInt(Math.random() * 200 300), afterWait: 2000}); } main();然后冰狐的模块化用ui开发功能的这个操作是确实方便好用