这是一个油猴(Tampermonkey)脚本,旨在自动化填写中国科学院大学(UCAS)选课系统中的 课程评估 和 教师评估 表单。
- 自动评分: 自动为所有评分类型的题目选择最高分选项(通常是 "非常满意" 或
value="5"
的单选按钮)。 - 自动填写主观题: 根据预设的答案列表,按顺序自动填充页面上的所有主观题文本框 (
<textarea>
)。- 脚本内置了适用于课程评估和教师评估的默认文本。
- 自动选择非评分题: 自动选择非评分区域(通常指评分表格之外的题目)的单选题和多选题的第一个选项。
- 调试信息: 在浏览器开发者控制台输出执行日志,方便追踪脚本运行状态和排查问题。
- 安装并启用 Tampermonkey 浏览器扩展。
- 点击浏览器工具栏上的 Tampermonkey 图标。
- 选择 “添加新脚本...”
- 将本脚本的完整代码复制粘贴到 Tampermonkey 编辑器中。
- 点击编辑器菜单中的 “文件” -> “保存”(或直接按
Ctrl + S
)。 - 确保脚本在 Tampermonkey 的“已安装脚本”列表中处于启用状态。
- 登录 UCAS 选课系统。
- 导航至需要填写的课程评估或教师评估页面。
- 当页面加载完成后,该脚本将自动运行:
- 评分题将被设为最高分。
- 主观题文本框将被填入预设内容。
- 非评分选择题的第一个选项将被勾选。
- (教师评估页)光标将聚焦在验证码输入框。
- 请务必检查脚本自动填写的内容,特别是主观题部分,确保其符合你的意愿(可在脚本代码中修改默认答案)。
脚本主要通过 JavaScript 操作网页的 DOM (文档对象模型) 来实现自动化:
- 匹配页面: 通过脚本头部的
@match
规则,脚本管理器(如 Tampermonkey)确保该脚本只在指定的 UCAS 评估页面上运行。 - 识别页面类型: 通过检查当前页面的 URL (
window.location.href
) 是否包含/evaluate/evaluateCourse/
或/evaluate/evaluateTeacher/
来判断是课程评估还是教师评估。 - 选择最高分: 使用
document.querySelectorAll('input[type="radio"][value="5"]')
找到所有代表最高分的单选按钮,并将其checked
属性设为true
。 - 填写主观题:
- 使用
document.querySelectorAll('textarea')
获取页面上所有的文本域元素。 - 根据预定义的答案数组 (
courseTextareaAnswers
或teacherTextareaAnswers
) 和文本域在页面中出现的顺序(索引index
),将对应的答案赋值给文本域的value
属性。
- 使用
- 选择非评分题第一个选项:
- 获取所有单选框和复选框 (
input[type="radio"], input[type="checkbox"]
)。 - 通过
input.closest('table.table-bordered') === null
过滤掉位于主评分表格内的选项。 - 将剩余的选项按其
name
属性进行分组。 - 对于每个分组(代表一个问题),将其第一个选项 (
group[0]
) 的checked
属性设为true
。
- 获取所有单选框和复选框 (
- 错误处理与日志: 使用
try...catch
块包裹可能出错的操作,并通过console.log
,console.warn
,console.error
在开发者控制台输出信息。
- 主观题内容: 脚本中预设的主观题答案仅为通用模板。强烈建议用户根据自己的真实想法,在脚本代码中修改
courseTextareaAnswers
和teacherTextareaAnswers
数组的内容。 - 非评分题默认选项: 脚本默认选择非评分题的第一个选项。如果这不是你期望的默认行为,需要修改脚本的相关逻辑。
- 系统更新: 如果 UCAS 评估系统的页面结构(HTML 元素、ID、类名、布局等)发生变化,脚本可能失效。届时需要根据新的页面结构更新脚本代码。如果遇到问题,可以尝试按 F12 打开浏览器开发者工具查看控制台是否有报错信息。
- 负责任使用: 请合理使用本脚本以节省时间,并确保提交的评估内容基本符合实际情况或已做相应修改。