当前位置: 首页 > article >正文

【自动化】考试答题自动化完成答案,如何实现100%正确呢

一、科目仿真考试不能自动答题

我的答案是可以的,电脑程序可以模拟人的操作完成所有的答题并提交结束考试

二、分析页面内容

完成一个题目,包括判断题,对与错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 = 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
        print(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()

http://www.kler.cn/a/281849.html

相关文章:

  • 环形缓冲区 之 STM32 串口接收的实现
  • 《探索 C++:一门强大且多功能的编程语言》
  • 不完全微分PID控制算法
  • nodejs入门(1):nodejs的前后端分离
  • stm32启动过程解析startup启动文件
  • OCRSpace申请free api流程
  • JS中【querySelectorAll】详解
  • AI模型:全能与专精的较量与未来潜力探讨
  • DP2.0和HDMI2.1的计算
  • 宠物浮毛怎么去掉比较高效?必看榜五星好评浮毛空气净化器
  • 【Hot100】LeetCode—22. 括号生成
  • 开发体育直播平台:如何全面防护,抵御网络攻击?
  • 【PostgreSQL教程】PostgreSQL 高级篇之 视图
  • WPF- vs中的WPF应用项目模板 如何自己实现
  • 关于 etcd lease,以下说法正确的是?
  • golang学习笔记——grom连接mysql
  • C++day2
  • 【计算机网络】名词解释--网络专有名词详解
  • CRMEB 开源商城系统研究报告
  • Pytorch构建网络模型结构都有哪些方式
  • 买了服务器后如何正确挂载数据盘|什么是系统盘,什么是数据盘
  • 33.鼠标悬停时的波浪线效果 CSS 重置
  • FLUX 1 将像 Stable Diffusion 一样完整支持ControlNet组件
  • JavaScript异步编程中的常见陷阱与解决方案
  • YASKAWA机器人维修操作命令攻略-移动命令运用案例
  • jupyter notebook修改默认浏览器(改chrome)