需求:

    模拟网页点击,在线学习平台每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自己多试试,问题能解决的。

 

 

 

 

 

 

 

 

Logo

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

更多推荐