您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
自动填写评价+自动提交+自动点击“确定”,用于华南理工大学教务处评教页面。
// ==UserScript== // @name SCUT教务处自动评价 // @namespace https://github.com/yluo996686/scut-auto-eval // @version 1.3 // @description 自动填写评价+自动提交+自动点击“确定”,用于华南理工大学教务处评教页面。 // @author 落叶 // @match https://pj.jw.scut.edu.cn/index.html* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; function randomDelay(min = 500, max = 1500) { return Math.random() * (max - min) + min; } function triggerEvent(element, eventName) { const event = new Event(eventName, { bubbles: true }); element.dispatchEvent(event); } function forceFillTextarea(textarea, text) { textarea.textContent = text; textarea.innerHTML = text; const nativeValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value').set; nativeValueSetter.call(textarea, text); triggerEvent(textarea, 'input'); triggerEvent(textarea, 'change'); } function autoClickConfirm() { const observer = new MutationObserver(() => { const confirmBtn = document.querySelector('.ant-modal-body .ant-btn-primary'); if (confirmBtn) { observer.disconnect(); setTimeout(() => { confirmBtn.click(); triggerEvent(confirmBtn, 'click'); console.log("✅ 已自动点击‘确定’按钮"); }, 5000); } }); observer.observe(document.body, { childList: true, subtree: true, }); } function autoFillEvaluation() { const interval = setInterval(() => { try { const questions = Array.from(document.querySelectorAll('.index__subjectItem--XWS1b')).filter(q => q.isConnected); const submitBtn = document.querySelector('.index__submit--jiKIA'); if (questions.length >= 14 && submitBtn) { clearInterval(interval); console.log("✅ 检测到题目和提交按钮,开始填写..."); questions.forEach(question => { const radios = question.querySelectorAll('input[type="radio"]:not([disabled])'); if (radios.length > 0) { const randomIndex = Math.floor(Math.random() * radios.length); radios[randomIndex].click(); triggerEvent(radios[randomIndex], 'change'); } const textarea = question.querySelector('textarea.index__UEditoTextarea--yga85'); if (textarea) { forceFillTextarea(textarea, "老师教学认真,内容充实,推荐!"); } }); setTimeout(() => { submitBtn.click(); triggerEvent(submitBtn, 'click'); console.log("✅ 已提交评价,等待弹窗..."); autoClickConfirm(); }, randomDelay()); } } catch (error) { console.error("❌ 脚本执行出错:", error); } }, 500); } window.addEventListener('load', autoFillEvaluation); })();