JS 循环并延迟点击或执行函数方法 setInterval实现
需求:模拟网页点击,在线学习平台每3分钟点一次进入下一阶段学习,人工守着点击费时费力解决思路分享:Python selenium UI自动化模拟点击,本身也擅长这个于是乎尝试编码,快速搭建环境写出demo遇到的难点1、登陆验证,手机短信验证码或者扫码登陆。> 解决方法:延迟登陆,手动解决登陆的问题2、登陆跳转到页面,存在iframe框架嵌入,多层嵌套,点击按钮跳转url地址不固定。>
需求:
模拟网页点击,在线学习平台每3分钟点一次进入下一阶段学习,人工守着点击费时费力
解决思路分享:
Python selenium UI自动化模拟点击,本身也擅长这个于是乎尝试编码,快速搭建环境写出demo遇到的难点
1、登陆验证,手机短信验证码或者扫码登陆。
> 解决方法:延迟登陆,手动解决登陆的问题
2、登陆跳转到页面,存在iframe框架嵌入,多层嵌套,点击按钮跳转url地址不固定。
> 解决方法,尝试跳转到固定的url,绕过iframe框架直接执行页面点击
> 解决方法,选择目标窗口,切换到iframe操作。
> 结果,思路有了编码和调试阶段觉得繁琐,操作路径太长了执行不方便
换一个方法,Chrome浏览器插件或者按键精灵(新版本WIndows10不支持了),再则我还有mac不支持按键精灵需要找到更简便的方法。
期望:学习和使用成本低,分享给其他人操作也很简单操作,于是乎就有了通过前端js去操作的思路
Window setInterval() 方法
教程地址:https://www.runoob.com/jsref/met-win-setinterval.html
实例
每三秒(3000 毫秒)弹出 "Hello" :
setInterval(function(){ alert("Hello"); }, 3000);
尝试一下 »
使用一个代码字符串:
setInterval('alert("Hello");', 3000);
尝试一下 »
调试代码
// 一秒后单次模拟点击,并延迟1秒
setTimeout(function() {
// IE
if(document.all) {
document.getElementById("btnNext").click();
}
// 其它浏览器
else {
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
document.getElementById("btnNext").dispatchEvent(e);
}
}, 1000);
最终代码
// 循环点击,延迟180秒*1000毫秒
setInterval(function(){
// IE
if(document.all) {
document.getElementById("btnNext").click();
}
// 其它浏览器
else {
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
document.getElementById("btnNext").dispatchEvent(e);
}
}, 180000
);
实操截图:
最后解决问题,网站本身也有bug自己多试试,问题能解决的。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)