帮媳妇实现了一个继续教育考试自动答题的功能。测试了一下效果还可以。 比自己网上百度搜素答案方便多了,否则自己查一遍得半个小时。
多选题自动选择
多选题漏选的原因分析
最后一题时,计数还在涨 本身 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 聊聊, 查看更多联系方式