华南理工大学评教自动化脚本
该脚本用于在华南理工大学教务系统(pj.jw.scut.edu.cn)的评教页面上自动填写问卷并尽量自动完成提交流程。脚本会自动选择每题的第一个可用选项、填充评价文本、点击提交并在弹窗中确认,随后自动前往下一门课程直到完成全部评教。
注意:脚本会执行自动提交操作,具有一定风险。使用前请务必阅读“风险与免责声明”并在可控环境下测试。
- 自动检测评教题目并逐题填写(默认选择第一个可用单选项)。
- 自动填充评价文字(默认文本:“老师教学认真,内容充实,推荐!”)。
- 自动点击“提交”并在弹窗出现时自动点击“确定”。
- 自动寻找并点击“下一(门/位)”按钮,继续下一份评教直到结束。
- 容错策略:使用 MutationObserver 监听确认弹窗并在失败时尝试刷新/重试(脚本内含简单异常捕获)。
- 在浏览器中安装 Tampermonkey 或 Violentmonkey。
- 将
scut-auto-evaluation.js添加到脚本管理器并启用。 - 手动进入目标评教的“具体打分题目页面”(脚本不会自动跳转到该页面),脚本在页面加载 (
window.onload) 完成后开始工作。
运行示例:打开要评教的页面,等待脚本在控制台输出日志(包含“检测到题目和提交按钮,开始填写...”等信息),观察自动填写与提交过程。
-
在浏览器中安装 Tampermonkey(Chrome/Edge:Tampermonkey,Firefox:Tampermonkey 或 Greasemonkey)。
-
打开本脚本在 Greasy Fork 的页面:
https://greasyfork.org/en/scripts/561829-scut%E8%87%AA%E5%8A%A8%E8%AF%84%E6%95%99%E8%84%9A%E6%9C%AC
-
点击页面中的 “Install this script” 或 “Install” 按钮:
- 若浏览器弹出 Tampermonkey 的安装窗口,确认并保存脚本;
- 若弹出原始脚本内容,Tampermonkey 会自动将其导入,点击保存/启用即可。
-
安装后确认脚本已在 Tampermonkey 仪表板中启用(开关为 ON)。
-
进入华工评教网页手动打开目标评教的“具体打分题目页面”,脚本会在页面加载后自动运行。
提示与常见问题:
- 如果 Tampermonkey 没有在该页面运行,检查 Tampermonkey 的“包含/排除”设置和脚本的
@match规则,确保pj.jw.scut.edu.cn被允许。 - 若 Greasy Fork 页面显示旧版本或发生更新延迟,点击 Greasy Fork 上的“Versions”或在 Tampermonkey 中使用“Check for updates”。
- 如果你更偏好手动安装:在 Tampermonkey 中选择“创建新脚本”,将
scut-auto-evaluation.js的完整内容粘贴进去并保存。
脚本当前为“默认自动提交”模式:若想改为“仅填写不自动提交”或加入确认,可以作以下修改:
- 在脚本顶部添加一个变量开关,例如:
const AUTO_SUBMIT = false; // false = 仅填写不提交- 在
autoFillEvaluation中,将触发提交的部分包裹if (AUTO_SUBMIT) { ... },否则只执行填写逻辑。 - 在自动提交前加入
confirm('确认自动提交?')弹窗以要求手动确认。
脚本依赖页面的一些 class 名称和按钮文本来定位元素(例如:.index__subjectItem--XWS1b、.index__submit--jiKIA、.ant-modal-body .ant-btn-primary 和包含“下一”字样的按钮)。
注意:这些 class 名称可能由前端构建工具生成且会在网站更新时改变。如果脚本失效:
- 打开浏览器开发者工具,检查题目项、提交按钮和确认弹窗的实际 DOM。
- 找到稳定的父节点或 data- 属性,替换脚本中的选择器。
示例:将 .index__subjectItem--XWS1b 替换为更稳健的选择器(如包含 role 或 data- 的属性)可以提高脚本的适应性。
- 脚本使用
console.log/console.error输出执行状态,打开开发者工具的控制台查看运行信息。 - 若脚本未触发,请检查 Tampermonkey 的
@match规则是否覆盖当前页面 URL。
Q: 页面元素不存在导致脚本不运行?
A: 页面可能尚未完全加载或选择器不匹配,建议在控制台运行 document.querySelectorAll('.index__subjectItem--XWS1b') 检查是否能找到题目项,并根据实际 DOM 调整选择器。
Q: 我不希望脚本自动提交,如何操作?
A: 将脚本改为“仅填写”模式(见“可定制项”),或在提交前添加确认对话框。
Q: 脚本在弹窗处停止了怎么办?
A: 检查是否存在与脚本匹配的确认按钮 .ant-modal-body .ant-btn-primary,如按钮类名发生变化需更新选择器;或手动点击确认继续。
- 本脚本可能违反学校或平台使用条款;使用风险由使用者自行承担。
- 强烈建议在测试账号或可控环境下先行验证行为。
- 请不要将脚本用于未经授权的大规模自动提交行为。
欢迎提交问题(issue)或 PR。如需我帮忙:
- 添加
AUTO_SUBMIT开关并默认关闭; - 将自动提交前加入确认弹窗;
- 帮你把脚本适配不同版本的页面选择器。
脚本元数据中包含 @license MIT(如你同意,请在仓库添加 LICENSE 文件)。
- 2026-01-08 — 初始版本:自动填写并自动提交。