利用浏览器调试工具跳过青年大学习

在某日某天实在是对每周的青年大学习感到厌烦,曾经单纯的我觉得青年大学习是能获取到知识的,到现在我已经感到厌烦了。

故此寻找跳过青年大学习的方法,终在大佬们的博客中找到了,利用浏览器的调试工具devices

这个工具可以检测和调试手机上运行的网页。所以当运行青年大学习的时候可以利用JavaScript来跳过。

教程

用手机开启开发者模式(具体机型需要百度),然后开启其中的USB调试。

USB连接电脑

然后在浏览器输入(这里以edge浏览器为例子):edge://inspect/#devices

而后在手机上确认允许此设备调试手机

当确定允许之后,过一会就会看到自己的设备了

此时会看到青年大学习,点击inspect就可以进行调试了

点击开始学习之后,获取其视频元素

这个video标签并没有id元素,所以使用jsdocument.getElementById获取video对象会失败

所以使用的document.querySelector来获取对象,完整的语句

1
document.querySelector("video")

这样就可以获取到js的对象了

接下来使用currenTime方法来直接定位视频时间,完整语句

1
document.querySelector("video").currentTime

定位到时间后直接修改值,直接拉满视频进度条

1
document.querySelector("video").currentTime=999;

修改后大学习并没有结束,出现了答题,这是为什么?

继续跟进源码,发现大学习的页面是通过页面样式来层层叠加的,点击一个按钮就会在当前样式的div标签里添加style ="display: none;"属性样式来隐藏掉div标签

如果删掉这个属性,之前的样式就会显现出来

答题的页面的样式是这里

可以看到并没有style="display: none;"所以拉满视频进度条后这个答题就会出来,这里直接给它添加上这个标签即可

1
document.querySelector("body > div.container > div.section1.topindex1").style.display = "none";

直接隐藏掉了,就出现了停住的视频

本来我以外是视频卡住了这个方法行不通,后面想想有没有可能是视频定位被拉过头了它没有那么长的时间,所以就在最后的时候暂停了

所以我就执行了这条代码让视频继续播放

1
document.querySelector("video").play();

这样就可以得到学习完成的样式了,最后就可以截图交差了

最后附上使用的js语句,下次就可以直接使用然后截图了

1
2
3
document.querySelector("video").currentTime=999;
document.querySelector("body > div.container > div.section1.topindex1").style.display = "none";
document.querySelector("video").play();

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
( function () {
var start = document.querySelector("body > div.container > div.section0.topindex.ani > div.start_btn.on");
var sign = document.querySelector("body > div.container > div.section0.topindex.ani > div.sign_btn.on");
if (start !== null) // 判断开始元素
{
start.click();
}else{
sign.click(); //点击开始学习
}
setTimeout(() => { //等待video标签加载出来,等待2秒
var video = document.querySelector("video");
video.currentTime = 9999;//拉满视频进度条,因网络原因需要等待视频资源加载完成
setTimeout(()=>{ //等待video标签加载完成,等待1秒
document.querySelector("body > div.container > div.section1.topindex1").style.display = "none";
video.play();//重新播放视频
console.log("我成功了");
}, 1000);
}, 2000);})()

微信朋友圈分享代码

最后在使用如何优雅的完成青年大学习 | RainChan的小博客这位大佬的代码即可实现转发朋友圈显示已完成

1
2
3
4
5
6
7
8
9
10
var title = document.title;
var newtitle = title.slice(0, 7) + "网上主题团课" + title.slice(7);
$("script").each(function ()
{
var content = $(this).text();
if (content.indexOf(title)!=-1) {
var script = content.replace(title,"满分!我完成了"+newtitle+",你也来试试吧");
eval(script);
}
});

本文章转自如何优雅的完成青年大学习 | RainChan的小博客微信高版本 xweb 内核跳过青年大学习(更新脚本) - 摸鱼派 (fishpi.cn)