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

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()
相关推荐
Java.熵减码农17 分钟前
解决Linux修改环境变量后导致登录循环进不去系统的问题
linux·运维·服务器
明天好,会的44 分钟前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
OidEncoder1 小时前
从 “粗放清扫” 到 “毫米级作业”,编码器重塑环卫机器人新能力
人工智能·自动化·智慧城市
猫头虎1 小时前
如何在浏览器里体验 Windows在线模拟器:2026最新在线windows模拟器资源合集与技术揭秘
运维·网络·windows·系统架构·开源·运维开发·开源软件
C_心欲无痕1 小时前
nginx - alias 和 root 的区别详解
运维·前端·nginx
徐同保2 小时前
nginx转发,指向一个可以正常访问的网站
linux·服务器·nginx
HIT_Weston2 小时前
95、【Ubuntu】【Hugo】搭建私人博客:_default&partials
linux·运维·ubuntu
实心儿儿2 小时前
Linux —— 基础开发工具5
linux·运维·算法
oMcLin3 小时前
如何在SUSE Linux Enterprise Server 15 SP4上通过配置并优化ZFS存储池,提升文件存储与数据备份的效率?
java·linux·运维
SelectDB3 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache