在每学期的教学评价中,需要对所有课程进行逐一填写,手动点击、填写评语、提交,过程非常机械。为了节省时间,编写并使用了一个脚本,可以自动完成以下操作:
✅ 脚本功能
- ✅ 遍历所有课程,逐一打开
-
✅ 自动填写选择题:
- 默认选择“非常认同”(即
data-dyf="100") - 随机一题选择“比较认同”(即
data-dyf="80"),防止满分
- 默认选择“非常认同”(即
- ✅ 自动填写评语和总体评价(内容为“好”)
- ✅ 模拟真实用户事件(如
input,change,blur),避免页面校验失败 - ✅ 自动点击“提交”按钮
- ✅ 提交后自动跳转到下一门课程
✨ 最终版本脚本
将以下代码复制到浏览器检查的控制台中,全自动等待全部执行完即可。
javascript:(function(){let t=0,e=document.querySelectorAll(".item.mui-clearfix"),n=t=>new Promise(e=>setTimeout(e,t));async function o(){if(t>=e.length)return void alert("✅ 所有课程评价已完成!");console.log("▶️ 打开第 "+(t+1)+" 门课程"),e[t].querySelector("a").click(),await async function(t,r=1e4){let o=0;for(;!document.querySelector(t)&&o<r;)await n(500),o+=500}("#submit"),await n(1000),console.log("✅ 页面加载完成");let c=document.querySelectorAll(".dp"),a=!1;c.forEach(e=>{let r=e.querySelectorAll(".block");if(r.length<2)return;let t;a?(t=r[0].querySelector(".cs")):(t=r[1].querySelector(".cs"),a=!0),t&&t.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0}))});let r=document.querySelector('textarea[name="zgpj"]');r&&(r.value="好",["focus","input","change","blur"].forEach(t=>r.dispatchEvent(new Event(t,{bubbles:!0})))),r=document.querySelector("#py"),r&&(r.value="好",["focus","input","change","blur"].forEach(t=>r.dispatchEvent(new Event(t,{bubbles:!0})))),await n(500);let i=document.querySelector("#submit");i&&(console.log("🚀 提交第 "+(t+1)+" 门课程"),i.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0}))),t++,await n(3e3),o()};0===e.length?alert("❌ 没有找到课程,请确认是否在教学评价页面"):o();})();
☑️ 使用方法
- 打开学校的教学评价系统(看到课程列表页面)
- 点击刚才保存的“自动教学评价”书签
- 等待系统自动填写和提交所有课程
⚠️ 注意事项
- 必须打开“课程列表页面”再运行脚本
- 填写评语为“好”,如需自定义可改脚本中对应字段
- 如果页面逻辑依赖用户交互,已通过
dispatchEvent完美模拟
✅ 结果
最终效果为:
- 每门课程自动进入
- 自动填写选择题和评语
- 自动提交并跳转
- 无需人工干预
节省了大量重复劳动,提交体验一键完成。
本文作者为wzzyhg,转载请注明。