继续教育网站考试自动答题

更新日期: 2022-07-06 阅读次数: 4576 字数: 1407 分类: Tampermonkey

帮媳妇实现了一个继续教育考试自动答题的功能。测试了一下效果还可以。 比自己网上百度搜素答案方便多了,否则自己查一遍得半个小时。

多选题自动选择

多选题漏选的原因分析

最后一题时,计数还在涨 本身 interval 在同一个题目页面内不断执行。 解决方案,答题后,clear interval。 分情况来看,如果最后一题没有答案,则 no answer 涨,有答案,has answer 涨。

网络卡顿造成的多选漏选原因: 根本原因,每个题目都是一个独立的页面,需要等待服务器返回。于是点击下一题后,如果两秒内题目没有刷出来,就会再执行一次答题过程。而多选题的特殊之处就在于,再次点击会导致勾选被取消。于是现象就吻合了,通常是前面几个选项漏掉。

修改点: 单纯 clear interval 是不够的。因为可能造成手工勾选结果被抹掉。 还是要判断是否勾选,然后再操作。 开一个新的考试,查看一下勾选相关的代码检测方法。

答题速度也取决于网络的速度,因为每个题目都是独立向网校服务器拉取的,拉取慢会导致每次点下一题都慢。乘以50倍,就是一个不能忽视的数值。从之前多选题漏选的情况看,每道题加载都在两秒以上。这也解释了为何实际答题时间,比预估的时间长很多。

功能点

  • 列表页,找到没有完成的,自动进入
  • 解析右侧列表,找到没有完成的
  • 点击播放按钮
  • 视频播放播放完,自动进入下一章
  • 遇到章节测试,进入下一章。因为是通过右侧状态点击的,所以完美绕过
  • 首页找到没有完成的,进入。修正 100.0% 变成了 100%
  • 一个页面中有多个视频的情况是否兼容。确实有问题。问题的根源是,同时只能有一个视频在播放。点击频率过高会导致网站提示异常。
  • 外层定时给内存标记当前状态
  • finish 判定的修改:应该是所有状态,都变成已完成,才算是 finish
  • 只播放第一个未完成的
  • 测试, 多视频的情况
  • 报错弹窗。需要切换线路。线路1和2,切换
  • bug: 遇到一个问题了。实习课程,没有进度
  • 考试。只有两次机会;一次 90 分钟;打完后给出答案。
  • 整理需要在第一轮完成的事情。
  • 只有单选,多选,判断,这三种题型么?还有简答题,也有答案
  • 考试页链接格式。从浏览器历史记录里获取
  • 收集答案功能。完不成就得手动输入答案了。。。
  • 判断结束:下一题变灰?
  • 点击交卷按钮
  • 获取试题 title。新开一个考试,避免用最后一次机会,心惊胆颤。
  • 验证考试链接
  • 进入提交后的页面,是否会改变链接地址
  • 还是不要自动点交卷好,要不在预览页看不到统计数据,即有多少题目没有答完
  • title 为 空的不填写答案
  • 这种整个题目是一张图片的,我想办法优化一下。否则如果一个考试里出现大量的图片题,我可能判断有问题。记录图片链接缀在前面
  • 多选题半对。猜测是点击太快,现在调整成了 200 毫秒。待测试。速度由1.5秒一题,改成了 2秒一题。每个选项点击由 0.1秒间隔,改成了 0.2 秒。总体就是一题慢了 0.5 秒
  • 全部完成后,返回首页。这个找个全部完成的,进入测试
  • 漏选问题。我不是很确定,换成不用 set interval 的方式试试。结合之前遇到的诡异的显示 N 道题没有答案的情况。原因大概找到了。这个是每次点击下一题,都是重新刷新一次页面,而不是 js 异步实现的。所以,计数是有问题的。之所以只有多选题有问题,是因为单选和判断,多次点击不会取消,而多选会取消。所以解决方案就很简单了,判断如果已经勾选,就不再点击。我猜测大概原因是你那边可能网络问题,偶尔卡顿,或者其他原因连接网校网址慢,可能某个时段网站卡,所以两秒钟内刷不出题目,导致程序运行了两次。运行两次的结果就是多选题,已勾选的会被取消。 而单选和判断题没有这个问题,是因为这两种题型就算点击多次也不会取消。 所以,解决方案,就是判断如果已经选择,就不重复点击了。这样大概就能完美解决这个问题
  • 如何判断已经勾选
  • 没有答案的, 说明一下如何增加编辑答案功能。
  • 支持简答题。英文考试;看起来是富文本编辑器。支持这个,整个考试功能就完美了。

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式