【油猴脚本】模拟鼠标点击
本帖最后由 知我枯荣 于 2021-4-22 20:38 编辑最近刷课,视频每隔几分钟就会暂停,需要手动点击才能继续播放{:10_266:}
想写个油猴脚本,每次弹窗都模拟鼠标自动点击继续播放
出现弹窗时,代码如图:
点击继续后:
大佬们,分享代码的同时能不能分享一下思路,小白一枚,想向大佬们学习学习
// ==UserScript==
// @name 发展对象在线培训
// @namespace http://tampermonkey.net/
// @version 1.510
// @description一开始选择课程既会自动点击开始播放。视频学习播放每5分钟左右会遇上弹窗(发现这段js被关闭了,用了其他方法来检查视频播放完毕)。原理:每3秒左右(随机)尝试点击“继续”的弹窗,没有则会跳过。支持同一课程下多个视频的自动播放。课程结束后会自动点击“学习完成”。没有需要学习的视频后停止。页面跳转回选课界面,请留意。
// @author ShiZitou
// @include http://210.37.41.108/fzdx/*/play?*
// @grant none
// @require http://code.jquery.com/jquery-1.11.0.min.js
// ==/UserScript==
(function() {
'use strict';
console.log('It\'s runing Now');
var i=0;var j=0;
var colors="red";
var time=getTimes();
var pa = document.createElement('p');
var n=130;//最大等待响应时长:n*3s
var k=0;
if(document.getElementsByClassName("video_cont")===undefined){
console.log("视频出错,即将刷新");
location.reload();
}else{
document.getElementsByClassName("video_cont").appendChild(pa);
}
showInfo('开始工作');
var tm=setInterval(function(){
if(document.getElementsByClassName("video_head").length==0&&document.getElementsByClassName("video_cont").length==0){
console.log("视频出错,即将刷新");
location.reload();
}else{
if(document.getElementsByClassName("video_red1").children.style.color==colors){//如果当前已经看完
showInfo("当前视频已看完,将点击下一视频");
if(document.getElementsByClassName("video_red1").nextSibling.nextSibling===null){
window.clearInterval(t1);
showInfo('当前课程没有需要学习的内容了!');
window.location.href="http://wsdx.ncu.edu.cn/user/lesson";
}else{
document.getElementsByClassName("video_red1").nextSibling.nextSibling.children.click();//点击下一视频
}
}else{
//进行弹窗点击操作
//console.log(document.getElementsByClassName("public_submit"));
if(document.getElementsByClassName("public_cancel")===undefined){
if(document.getElementsByClassName("public_submit")===undefined){
i=i+1;
showInfo('共点击'+j+'次弹窗!预计下次弹窗'+(i/n*100).toFixed(2)+'%。已过'+(i*time/60/1000).toFixed(2)+'分钟');
if(document.getElementsByClassName("plyr--stopped")===undefined){
k=0;
}else{
k++;
if(k>=n/10-5){
showInfo('视频暂停中,将在'+((n/10-k)*time/60/1000).toFixed(2)+'分钟后刷新');
}
if(k>=n/10){
showInfo('视频暂停中,可能已播完,刷新');
location.reload();
}
}
}else{
document.getElementsByClassName("public_submit").click();
i=0;
j=j+1;
showInfo('第'+j+'次点击弹窗!开始学习');
}
}else{
document.getElementsByClassName("public_cancel").click();
i=0;
j=j+1;
showInfo('第'+j+'次点击弹窗!继续学习');
}
}
}
//alert(document.getElementsByClassName("public_submit"));
},time);
})();
function getTimes(){
var times=Math.random()*8 + 1;//1-9
times=3*1000*1;//+times*10
return times
}
function showInfo(str){
console.log(str);
document.getElementsByClassName("video_cont").children.innerText=str;
} 知我枯荣 发表于 2021-4-23 00:50
恰巧在greasyfork上看到一个原理差不多的,稍微改了一下可以实现我想要的功能了{:10_257:},但是还有一个问题,切换到新标签页视频会自动暂停,这个有大佬能帮忙解决吗{:10_266:} 这东西一般都是js编写 #是通过js操作使网页继续 我推荐鼠标连点器,设置固定时间,然后点击 雷欧库珀 发表于 2021-4-22 21:43
我推荐鼠标连点器,设置固定时间,然后点击
但是这个出现的时间是随机的,这个确实可以用按键精灵或者Uibot实现,主要是希望能和大佬们学学JS xiaosi4081 发表于 2021-4-22 21:40
是通过js操作使网页继续
大佬,能教教我吗{:10_297:}
页:
[1]