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

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()
相关推荐
华普微HOPERF19 分钟前
Matter协议,如何塑造更宜居、流畅的智能家居网络?
服务器·网络·智能家居
初学者_xuan1 小时前
零基础新手小白快速了解掌握服务集群与自动化运维(十五)Redis模块-Redis数据库基础
运维·数据库·自动化
小志biubiu1 小时前
【Linux】Ext系列文件系统
linux·服务器·c语言·经验分享·笔记·ubuntu·操作系统
DooTask官方号2 小时前
DooTask 1.3.38 版本更新:MCP 服务器与 AI 工具深度融合,开启任务管理新体验
运维·服务器·人工智能·开源软件·dootask
wanhengidc4 小时前
云手机适配用户有哪些?
服务器·arm开发·安全·智能手机·玩游戏
阿Y加油吧5 小时前
Docker从入门到实战——含容器部署、docker基础、项目部署
运维·docker·容器
st7802065 小时前
Debian 13.1 下编译Openwrt24
运维·debian·openwrt
Wang's Blog6 小时前
Linux小课堂: NGINX反向代理服务器配置与实践
linux·运维·nginx
运维行者_6 小时前
运维实战:SSL 证书故障避坑指南(精简版)
运维·网络协议·ssl