You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现网页按钮逐个点击避免Chrome因过载崩溃?

解决批量点击按钮导致浏览器崩溃的方案

一次性触发2000次点击确实会把浏览器资源占满,下面给你几个逐个点击的实现方式:

方法一:用定时器分批触发

把点击操作放到定时器里,每次只执行一个,全部完成就关掉定时器:

const divs = document.querySelectorAll('.wbloks_1');
let index = 0;
const timer = setInterval(() => {
  if (index >= divs.length) {
    clearInterval(timer);
    return;
  }
  divs[index].click();
  index++;
}, 100); // 间隔时间可自行调整,比如50ms/200ms

你可以根据实际情况修改间隔时长,怕触发网站限制就设长一点,想快点完成就设短一点。

方法二:用async/await加延迟

这种写法逻辑更像同步操作,可读性更高:

async function clickOneByOne() {
  const divs = document.querySelectorAll('.wbloks_1');
  for (const div of divs) {
    div.click();
    await new Promise(resolve => setTimeout(resolve, 100)); // 每次点击后等待100ms
  }
}
clickOneByOne();

await会让循环暂停,等延迟结束再执行下一次点击,不会一次性把所有点击任务堆给浏览器。

方法三:for循环配合setTimeout(你提到的思路)

给每个按钮的点击操作设置不同的延迟时间,错开执行时机:

const divs = document.querySelectorAll('.wbloks_1');
for (let i = 0; i < divs.length; i++) {
  setTimeout(() => {
    divs[i].click();
  }, i * 100); // 第i个按钮延迟i*100ms执行
}

这种方法不用维护额外的定时器变量,但缺点是中途想停止所有任务会比较麻烦。

选哪种看你的需求,需要随时暂停就用方法一,想要逻辑简单直观就选方法二。

内容的提问来源于stack exchange,提问作者Selim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:17:04