微信高版本 xweb 内核跳过青年大学习(更新脚本)

微信高版本xweb内核跳过青年大学习

哥们一个小群众,狗学校让非团员党员也要学青年大学习KI-6PTYF5Y{0AG-LTWG$_JS.gif

那就不能怪我做一些小动作了

微信在8.02x的版本中已经替换了内核,从X5内核替换程了XWEB内核

D7C57D78BA83A927FD31BA38BC426009.jpg

很不巧,我的是8.023的版本,所以不能直接使用X5内核的vConsole来直接调试(修改)页面

经过我的一番资料查找,找到了调试XWEB的方法

手机开启开发者模式,然后开启USB调试

E78C2EB887CE2DA3BED2233B88A53EE6.jpg

usb连上电脑

在微信里点击一下这个link

http://debugxweb.qq.com/?inspector=true

这个link是用来启用微信的XWEB调试模式的

然后根据google chrome的文档来进行操作

https://developer.chrome.com/docs/devtools/remote-debugging

image.png

chromeurl栏里输入chrome://inspect#devices

image.png

然后在手机上确认允许此设备调试手机(我这里已经选过了所以没有)

选后过一会儿就能看到自己的设备了

image.png

开启青年大学习,chrome就会显示出来了

image.png

点击inspect就可以进行调试了

image.png

image.png

点击开始学习后,HTML获取到video标签

image.png

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

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

document.querySelector("video")

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

image.png

接下来使用currenTime方法来直接定位视频时间

image.png

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

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

image.png

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

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

image.png

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

image.png

image.png

答题的页面的样式是这里

image.png

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

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

image.png

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

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

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

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

image.png

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

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

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

更新:

莫名其妙的踩了一晚上的坑,终于把脚本写出来了,这样就不需要一行一行的粘贴了,附上脚本

( 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);})()

image.png