一、科目仿真考试不能自动答题
我的答案是可以的,电脑程序可以模拟人的操作完成所有的答题并提交结束考试
二、分析页面内容
完成一个题目,包括判断题,对与错2选1答案,单选题ABCD4选1答案,多选题大家想一想
F12查看按钮 id 有没有规律呢
我们在看一下题库中是什么的
我们的思路是将题库的答案替换成和按钮一样的数字
if da == '对':da = 11 elif da == '错':da = 12 elif da == 'A':da = 21 elif da == 'B':da = 22 elif da == 'C':da = 23 elif da == 'D':da = 24
注意if elif 是对齐的不是错位的
现在还有一个问题多选题,若答案是ABC,怎么处理呢。
用一个for da in dalist:每一个答案点击一次循环语句
page.ele(f'css:#btnDa{da}').click() page.ele('css:#btnNext2').click()
最终完成所有的操作。
三、题库在哪里
当请求网址的时候服务器会返回一个题库
F12找到题库地址
https://tk.mnks.cn/kaoshiti/?tk=kms&cx=C1&t=6502824376164&sign=70F618D0E0223B46307B713AE862669C
打开网址前就要监听数据包,拿到的字符串 需提取题库内容,并转成JSON语句 page.listen.start('kaoshiti/') page.get('https://www.jsyks.com/kms-fzks') resp = page.listen.wait() info = resp.response.body
kaoshitiku = re.findall('var ExamCnts = (.*?);',info)[0] print(type(kaoshitiku)) json_data = json.loads(kaoshitiku) print(json_data)
四、自动化程序
from DrissionPage._pages.chromium_page import ChromiumPage page = ChromiumPage() import json import re import time page.listen.start('kaoshiti/') page.get('https://www.jsyks.com/kms-fzks') resp = page.listen.wait() info = resp.response.body # print(type(info),info) kaoshitiku = re.findall('var ExamCnts = (.*?);',info)[0] print(type(kaoshitiku)) json_data = json.loads(kaoshitiku) print(json_data) for t in json_data:tm = t['tm']dalist = t['da']print(tm,dalist)for da in dalist:if da == '对':da = 11elif da == '错':da = 12elif da == 'A':da = 21elif da == 'B':da = 22elif da == 'C':da = 23elif da == 'D':da = 24print(tm, da)page.ele(f'css:#btnDa{da}').click()page.ele('css:#btnNext2').click()time.sleep(1) page.ele('css:#btnNext3').click() page.ele('x://*[@id="Tip_Msg"]/div/span/input[1]').click()