编写点击Word Hippo所有「more >」链接的书签脚本,现有代码无等待间隔
Word Hippo页面批量点击more按钮脚本修复方案
问题原因
原代码等待逻辑失效的核心原因有两个:
- do-while属于同步执行逻辑,内部的async立即执行函数不会阻塞循环,会瞬间触发大量重复异步任务
Array.forEach不支持异步串行等待,回调函数内的await只会暂停当前回调,不会阻塞后续遍历执行,所有点击操作会几乎同步触发
修复后代码
const sleep = t => new Promise(s => setTimeout(s, t)); (async () => { let thingsToClick; do { thingsToClick = $$('div.morewordsblock[onclick]:not([style])'); console.log('本轮待点击按钮数量:', thingsToClick.length); if (thingsToClick.length === 0) break; for (const clickable of thingsToClick) { console.log('点击元素ID:', clickable.id); clickable.click(); // 两次点击间隔5秒 await sleep(5000); } console.log('本轮点击完成,等待页面加载新内容'); // 两轮遍历间隔5秒 await sleep(5000); } while (thingsToClick.length > 0); console.log('所有more按钮点击完成'); })();
书签脚本制作方法
将上述代码压缩为单行,在最前面添加javascript:前缀,新建浏览器书签,将拼接后的内容粘贴到书签地址栏即可,打开目标页面后点击该书签即可自动运行。
内容的提问来源于stack exchange,提问作者AncientSwordRage
相关产品推荐
相关产品推荐

