女朋友开学抢课,由于学校官网过于“强大”,登录就立马掉出,未能及时选到课,后知后觉写一个抢课脚本,希望补救一下!
代码如下:
第一部分:自动登录
//自动填入账号信息
document.querySelector("#userAccount").value=账号;
document.querySelector("#userPassword").value="密码";
//点击登录按钮
document.querySelector("#ul1 > li:nth-child(5) > button").click();
//判断是否存在进入选课按钮,有就点击
var commenClass = document.querySelector("#topmenu > li.current > a");
if(commenClass!=null){
commenClass.click();
}
第二部分:循环检查要选的类别里是否有可选课程,有就点击选课按钮
//点击公选课按钮
//document.querySelector("#topmenu > li:nth-child(4) > a").click();
var count = 0;
setInterval(function() {
count = count + 1;
let sleep = function(time) {
let now = Date.now() // 获取当前毫秒数
// 设置while循环,循环条件为:实时时间减去记录时间小于3s,否则则循环结束
while (Date.now() - now < time) {}
}
console.log(count)
//分类按钮顺序
var num = [2, 5, 7];
//获取下拉选框
var options = document.getElementById('szjylb').children;
//循环要选择的三个分类
// for (var i = 0; i < num.length; i++) {
//选择分类
options[num[count % 3]].selected = true;
//查询
queryKxkcList();
sleep(3000);
setTimeout(() => {
$("#dataView tbody tr").each(function() {
var a = $(this).children(); //获取每一行
var arr = a[7].innerText; //取得第三列的值
console.log("课程名称:" + a[1].innerText + " 剩余量:" + arr);
//遍历数据列表
for (var j = 0; j < arr.length; j++) {
if (arr[j] != 0) {
//点击选课按钮
a[10].children[0].children[0].click()
}
}
});
}, 2000);
//获取数据列表
// }
}, 5000);