程序自动化填写网页表单数据

1 背景介绍

如何让程序自动化填写网页表单数据,特别是涉及到批量数据情况时,可以减少人力。下面是涉及到的一些场景,都可以通过相关自动化程序实现。

场景1

场景1,领导安排,通过相关省、市、县、乡镇数据,填写到某个办公网页系统,或者进行注册,或者统计。因为拿不到系统内部的上传接口,一些网页通过异步js规避了接口,通过查看网页代码很难找到入口,只能通过人力,一条一条数据的进行上传。

场景2

场景2,涉及到多人进行报名注册,你是比赛负责人,或者班主任,或者领导安排你负责全校人员报名,此时也是拿到批量的数据,需要一个一个录如姓名,身份证号,选择对应单位等等,此时如果涉及到200条以上数据时非常麻烦。需要耗时耗力,并且还有可能会出错,copy或者填写错误。

场景3

场景3,开发好一个网页后,需要多位用户进行常态化测试,查看用户登录,登出等相关操作,需要写对应测试用例,进行自动化输入,check, 以及定时跑,保证线上网站功能正常,不影响线上用户。

第3节列举了一个案例实现,并分析了相关思路,感兴趣读者可以仔细阅读第3节。

2 解决方案

方案一,可以使用python 相关代码 控制浏览器,如Selenium WebDriver,可以通过 Selenium 提供的 一些接口来进行模拟人员进行点击或者提交。

方案二,可以按键精灵写相关代码进行数据读取,模拟人点击浏览器,以及相关数据输入,提交等一条龙服务。

3 解决方案

以该报名比赛为例(https://www.pecmnr.cn/gjbt/que-register.html?t=1743319078296)需要提供大量的学生的学生信息进行注册。![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e0f0ef7c99cf42f884604ba6a490fcca.png)

可以看到需要输入7个信息后,第八步,点击提交:同时该表单入口请求地址,对于一般程序员也是找到的。

相关excel数据如下图:(相关测试用户,实际可以用很多列,原理基本相同)

相关步骤可以总结为:

1 程序开始,读取数据

2 相关变量初始化。如循环次数等等

3 模拟人相关点击浏览器或者输入操作

4 设置相关条件,可用于check,或者日志打印

5 程序结束, 关闭相关资源

下面为报名比赛的相关自动化代码。

4 相关代码

bash 复制代码
//打开Excel文档工作表
Call Plugin.Office.OpenXls("C:\Users\GYU\Desktop\stuInfo.xls")                                                              



row = 2 



Rem 循环开始

// 初始状态情况判断


'==========以下是按键精灵录制的内容==========
MoveTo -3659, -556
Delay 1541
LeftClick 1
Delay 2
LeftUp 1
MoveTo -2698, 492
Delay 950
MouseWheel -1
Delay 1
MouseWheel -1
Delay 27
MouseWheel -1
Delay 5
MouseWheel -1
MoveTo -2698, 493
Delay 6
MouseWheel -1
Delay 2
MouseWheel -1
Delay 8
MouseWheel -1
Delay 1
MouseWheel -1
Delay 6
MouseWheel -1
Delay 1
MouseWheel -1
Delay 15
MouseWheel -1
Delay 8
MouseWheel -1
Delay 8
MouseWheel -1
Delay 1
MouseWheel -1
Delay 31
MouseWheel -1
Delay 8
MouseWheel -1
MoveTo -2683, 486
Delay 257
MouseWheel -1
Delay 2
MouseWheel -1
Delay 13
MouseWheel -1
Delay 9
MouseWheel -1
Delay 8
MouseWheel -1
Delay 2
MouseWheel -1
Delay 8
MouseWheel -2
Delay 4
MouseWheel -2
Delay 4
MouseWheel -1
Delay 4
MouseWheel -1
Delay 1
MouseWheel -1
Delay 16
MouseWheel -1
Delay 2
MouseWheel -1
MoveTo -1353, 1025
Delay 1308
LeftClick 1
Delay 2
LeftUp 1
'==========以上是按键精灵录制的内容==========


//向Excel文档工作表(1)单元格(1, 2)读出内容存入(Text)变量
name = Plugin.Office.ReadXls(1, row, 2)
//向Excel文档工作表(1)单元格(1, 2)读出内容存入(Text)变量
id = Plugin.Office.ReadXls(1, row, 3)


KeyPress "Tab", 3
SayString name
Delay 200

KeyPress "Tab", 2
SayString id
Delay 200

KeyPress "Tab", 1
SayString "xx中学"
Delay 200

KeyPress "Tab", 1
SayString "张三老师"
Delay 200

KeyPress "Tab", 1
SayString "12345678"

KeyPress "Tab", 1
SayString "123456"


KeyPress "Tab", 1
SayString "123456"
Delay 200

MoveTo -1853, 1225
Delay 200
LeftClick 1

//KeyPress "Tab", 1

row = row + 1

If row = 501 Then 
	Goto 结束
End If 
Goto 循环开始


Rem 结束


MessageBox "程序结束! "&(row - 1)&" 条数据插入成功!"
Call Plugin.Office.CloseXls()
相关推荐
qq_366566502 分钟前
视频配音自动化Pipeline:TTS选型+音色克隆+批量处理(附完整代码)
自动化·新媒体运营·音视频·音频
lizhihai_991 小时前
股市学习心得-AI 产业链核心标的梳理清单
大数据·服务器·人工智能·科技·学习
云计算磊哥@1 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
黄同学real1 小时前
解决 Visual Studio Web Deploy 远程发布报 401 未授权 (ERROR\_USER\_UNAUTHORIZED)
服务器
天天进步20152 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
极客先躯2 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
Java面试题总结3 小时前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器
●VON3 小时前
AtomGit Flutter鸿蒙客户端:数据模型
android·服务器·安全·flutter·harmonyos·鸿蒙
志栋智能3 小时前
超自动化巡检:提升MTTR,缩短业务影响时间
运维·自动化
酉鬼女又兒3 小时前
零基础入门计算机网络:网络层核心任务、三大关键问题、两种服务类型与 TCP/IP 网际层协议体系全解析
服务器·网络·网络协议·tcp/ip·计算机网络·php·求职招聘