如何编写无鼠标移动的cpstest.org JS自动点击脚本
修复方案
你的代码无法运行有几个明确问题,直接按下面改即可:
- 语法错误:
repeat函数内大括号错位,JS解析阶段就会报错,根本不会执行 - 目标元素错误:cpstest.org的可点击测试区域固定id为
clickarea,不需要额外定位,你写的unknownId是未定义变量,自然选不到元素 - 逻辑缺陷:没有停止判断,测试结束后会持续执行无效逻辑,还会抛错
直接注入下面的代码就能用,默认是跟随屏幕刷新率连点(约60CPS):
let autoClickEnabled = false; // 绑定开始按钮触发 document.querySelector('#start').addEventListener('click', () => { autoClickEnabled = true; }, { once: true }); function loopClick() { if (autoClickEnabled) { const target = document.querySelector('#clickarea'); if (target) { target.click(); } else { // 测试结束后点击区域会被移除,自动停止 autoClickEnabled = false; } } requestAnimationFrame(loopClick); } loopClick();
如果需要自定义连点速度,把requestAnimationFrame换成setInterval即可,间隔计算公式为1000 / 你想要的CPS值,比如想要100CPS就把间隔设为10:
let autoClickEnabled = false; document.querySelector('#start').addEventListener('click', () => { autoClickEnabled = true; }, { once: true }); // 改下面的16调整速度,单位毫秒 setInterval(() => { if (!autoClickEnabled) return; const target = document.querySelector('#clickarea'); target?.click(); if (!target) autoClickEnabled = false; }, 16);
注:如果发现
.click()触发无效,把target.click()换成派发鼠标事件的写法即可:target.dispatchEvent(new MouseEvent('mousedown', {bubbles: true})); target.dispatchEvent(new MouseEvent('mouseup', {bubbles: true})); target.dispatchEvent(new MouseEvent('click', {bubbles: true}));
内容的提问来源于stack exchange,提问作者ProgramProdigy
相关产品推荐
相关产品推荐

