福建华博继续教育自动填验证--Microsoft Edge版本 108.0.1462.46 (正式版本) (64 位)有效,360浏览器10内核63.0.3292.129无效

福建继续教育--自动过计算题验证

// ==UserScript==
// @name         福建华博继续教育自动填验证--Microsoft Edge版本 108.0.1462.46 (正式版本) (64 位)有效,360浏览器10内核63.0.3292.129无效
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  福建继续教育--自动过计算题验证
// @author       SuperW
// @match        *://*.59iedu.com/*
// @match        https://fjysxhpx.59iedu.com/play/*
// @grant        none
// @license MIT
// ==/UserScript==

(function () {

    console.log("****脚本运行了*****");
    //保存原函数的引用
    let clr = window.clearInterval;
    window.clearInterval = (id) => {
        if (id != myID) {
            //调用原函数
            clr(id);
            //这里不能用clearInterval,会爆堆栈
        }
    }
    let myID =setInterval(function(){
        console.log("脚本运行中……")
        function jisuan(x,y,z)
        {
            var s;
            x=Number(x);
            z=Number(z);
            if (y=="+"){s=x+z;}
            else if (y=="-")
            {s=x-z;}
            else if (y=="x")
            {s=x*z;}
            else if (y=="÷")
            {s=s/z;};
            return s;
        };
        //判断验证码页面是否出现
        var zt=document.querySelector('.vjs-play-control > span:nth-child(2)')?.textContent;
        var question = document.querySelector(".d-qus-body");
        if(zt=="播放"&&question==null){
            document.querySelector('.vjs-play-control').click()}
        if(question!=null){
            console.log("验证页面出现了");
            // 提取题目输出:例"2 x 5 = ?"
            let qu=document.querySelector(".d-qus-body").innerText;
            //提取题目并进行计算
            //let qu = "2 x 5 = ?"
            console.log('获取题目:',qu);
            console.log(qu[0],qu[2],qu[4]);
            let a=jisuan(qu[0],qu[2],qu[4]);
            console.log("计算结果:",a);
            // 提取A选项答案
            let ansA=document.querySelector('div.d-slt:nth-child(1) > label:nth-child(1) > span:nth-child(4)')?.innerText;
            // A选项是否被选中
            let chA=document.querySelector('div.d-slt:nth-child(1) > label:nth-child(1) > input:nth-child(1)');
            //  提取B选项答案
            let ansB=document.querySelector('div.d-slt:nth-child(2) > label:nth-child(1) > span:nth-child(4)')?.innerText;
            // B选项是否被选中
            let chB=document.querySelector('div.d-slt:nth-child(2) > label:nth-child(1) > input:nth-child(1)');
            //  提取C选项答案
            let ansC=document.querySelector('div.d-slt:nth-child(3) > label:nth-child(1) > span:nth-child(4)')?.innerText;
            // C选项是否被选中
            let chC=document.querySelector('div.d-slt:nth-child(3) > label:nth-child(1) > input:nth-child(1)');
            //  提取D选项答案
            let ansD=document.querySelector('div.d-slt:nth-child(4) > label:nth-child(1) > span:nth-child(4)')?.innerText;
            // D选项是否被选中
            let chD=document.querySelector('div.d-slt:nth-child(4) > label:nth-child(1) > input:nth-child(1)');
            console.log(ansA,ansB,ansC,ansD);
            console.log(chA.checked,chB.checked,chC.checked,chD.checked);
            //查找答案的位置并选中正确选项
            if (a==ansA){
                chA.checked=true;
                chA.click();
                console.log("点击了正确答案A");
            }
            else if (a==ansB){
                chB.checked=true;
                chB.click();
                console.log("点击了正确答案B");
            }
            else if (a==ansC){
                chC.checked=true;
                chC.click();
                console.log("点击了正确答案C");
            }
            else if (a==ansD){
                chD.checked=true;
                chD.click();
                console.log("点击了正确答案D");
            };
            //点击提交答案按钮			//延时0.5秒
            setTimeout(document.querySelector('.blue').click(),500);
            //点击关闭窗口按钮			//延时0.5秒
            setTimeout(document.querySelector('.blue').click(),500);
        };
    }, 3000);

})();