您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
进入课程后自动执行|自动学习小节|需要定制脚本/其他+v:zihuizixin
// ==UserScript== // @name 学法 如法网 12348 湖南学法 // @namespace 需要定制脚本+v:zihuizixin // @version 1.7 // @description 进入课程后自动执行|自动学习小节|需要定制脚本/其他+v:zihuizixin // @author MEN // @match http://hn.12348.gov.cn/fxmain/subpage/legalpublicity/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @license MIT // @grant none // ==/UserScript== (function() { const $X = { wait: async (milliseconds) => { return new Promise((resolve) => { setTimeout(resolve, milliseconds); }); } }; const query = async () =>{//查询是否存在答题模块 if (document.querySelector('form[class="questions"]')) { // 元素存在 console.log('存在答题'); for(var i=1;i<=12;i++){ answer(i).then((result) => { if(result ==1){ console.log("答题函数出现未知异常,结束当前答题线程") return } }); await $X.wait(35000); } await $X.wait(35000); clickNextPage(); }else{ console.log("找不到答题模块") await $X.wait(35000); clickNextPage(); } } const clickNextPage = async () =>{//点击下一页 var page = document.querySelector(".gz_sq_an"); var nextPage = page.querySelector("a.next"); if (nextPage) { // 如果找到了下一页按钮 nextPage.click(); // 模拟点击下一页按钮 console.log("进入下页,重新执行答题") await $X.wait(60000); query() } else { console.log("未找到下一页按钮"); alert("没有找到下一页,可能答题结束!") } } const answer = async(count) =>{//答题模块 console.log('第'+count+"次答题"); var formElement = document.querySelector('form[class="questions"]'); if (formElement) { var neiinput = formElement.querySelectorAll('div[class="neiinput"]'); /** if(count==1){ console.log("强制设置初始化值") const radioButtons = document.querySelectorAll('input[type="radio"]'); radioButtons.forEach(radioButton => { radioButton.checked = false; }); const checkboxes = document.querySelectorAll('input[type="checkbox"]'); checkboxes.forEach(checkbox => { checkbox.checked = false; }); var key = document.querySelectorAll('[value="A"]') if(key.length>0){ for (var j = 0; j < key.length; j++) { key[j].click() } save(); await $X.wait(35000); }} **/ try{ if (neiinput.length > 0) { for (var i = 0; i < neiinput.length; i++) { var flage = neiinput[i].querySelector('input[class="empty an answerfalse"]') //该题为单选错误 var flage1 = neiinput[i].querySelector('input[class="test an answerfalse"]') //该题为多选错误 var flage2= neiinput[i].querySelector('input[class="test an answerfalse answerxz') var tmp if(flage){ console.log("开始选择单选答案") switch (count) { case 1: tmp = 'input[type="radio"][value="A"]' break; case 2: tmp = 'input[type="radio"][value="B"]' break; case 3: tmp = 'input[type="radio"][value="C"]' break; case 4: tmp = 'input[type="radio"][value="D"]' break; default: console.log("无效的选择"); tmp =false break; } }else{ if(count ==1){ tmp = 'input[type="radio"][value="A"]'} } if(tmp){ try{ neiinput[i].querySelector(tmp).click()}catch (error) { console.log("单选出现异常"+error) } } var tmp1 if(flage1 || flage2){ console.log("开始选择多选选答案") const checkboxes = neiinput[i].querySelectorAll('input[type="checkbox"]'); checkboxes.forEach(checkbox => { checkbox.checked = false; }); switch (count) { case 1: tmp1 = 'input[type="checkbox"][value="A"]' break; case 2: tmp1 = 'input[type="checkbox"][value="B"]' break; case 3: tmp1 = 'input[type="checkbox"][value="C"]' break; case 4: tmp1 = 'input[type="checkbox"][value="D"]' break; case 5: var tmp51 = 'input[type="checkbox"][value="A"]' var tmp52 = 'input[type="checkbox"][value="B"]' neiinput[i].querySelector(tmp51).click() neiinput[i].querySelector(tmp52).click() break; case 6: var tmp61 = 'input[type="checkbox"][value="A"]' var tmp62 = 'input[type="checkbox"][value="C"]' neiinput[i].querySelector(tmp61).click() neiinput[i].querySelector(tmp62).click() break; case 7: var tmp71 = 'input[type="checkbox"][value="A"]' var tmp72 = 'input[type="checkbox"][value="D"]' neiinput[i].querySelector(tmp71).click() neiinput[i].querySelector(tmp72).click() break; case 8: var tmp81 = 'input[type="checkbox"][value="A"]' var tmp82 = 'input[type="checkbox"][value="B"]' var tmp83 = 'input[type="checkbox"][value="C"]' neiinput[i].querySelector(tmp81).click() neiinput[i].querySelector(tmp82).click() neiinput[i].querySelector(tmp83).click() break; case 9: var tmp91 = 'input[type="checkbox"][value="A"]' var tmp92 = 'input[type="checkbox"][value="B"]' var tmp93 = 'input[type="checkbox"][value="D"]' neiinput[i].querySelector(tmp91).click() neiinput[i].querySelector(tmp92).click() neiinput[i].querySelector(tmp93).click() break; case 10: var tmp101 = 'input[type="checkbox"][value="A"]' var tmp102 = 'input[type="checkbox"][value="C"]' var tmp103 = 'input[type="checkbox"][value="D"]' neiinput[i].querySelector(tmp101).click() neiinput[i].querySelector(tmp102).click() neiinput[i].querySelector(tmp103).click() break; case 11: var tmp111 = 'input[type="checkbox"][value="B"]' var tmp112 = 'input[type="checkbox"][value="C"]' var tmp113 = 'input[type="checkbox"][value="D"]' neiinput[i].querySelector(tmp111).click() neiinput[i].querySelector(tmp112).click() neiinput[i].querySelector(tmp113).click() break; case 12: var tmp121 = 'input[type="checkbox"][value="A"]' var tmp122 = 'input[type="checkbox"][value="B"]' var tmp123 = 'input[type="checkbox"][value="C"]' var tmp124 = 'input[type="checkbox"][value="D"]' neiinput[i].querySelector(tmp121).click() neiinput[i].querySelector(tmp122).click() neiinput[i].querySelector(tmp123).click() neiinput[i].querySelector(tmp124).click() break; default: console.log("无效的选择"); tmp1 =false break; } }else{ if(count ==1){ tmp1 = 'input[type="checkbox"][value="A"]'} } if(tmp1){ try{ neiinput[i].querySelector(tmp1).click()}catch (error) { console.log("多选出现异常"+error) } } } } else { console.log("找不到题目") } }catch (error) { console.log(error) } console.log('提交答案'); save(); } else { console.log('未找到 <form> 元素,等待50秒后切换下一张'); await $X.wait(35000); clickNextPage(); return 1; } } const save = async () =>{ document.getElementById('btn_code').click() } setTimeout(query, 10000); function refreshPage() { location.reload(); // 刷新当前页面 } // 每半个小时(1800000毫秒)执行一次刷新 setInterval(refreshPage, 3600000); })();