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

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学习通13 分钟前
[javaEE]网络编程
运维·服务器·网络
alden_ygq2 小时前
/etc/kdump.conf 配置详解
服务器·网络·php
偶尔微微一笑2 小时前
postgresql数据库基本操作
运维·数据库·postgresql·oracle
漠月瑾-西安3 小时前
网络安全自动化:精准把握自动化边界,筑牢企业安全防
安全·web安全·自动化
会飞的涂涂3 小时前
Linux中的粘滞位和开发工具和文本编辑器vim
linux·运维·服务器
别催小唐敲代码3 小时前
解决跨域的4种方法
java·服务器·前端·json
用户呢称4 小时前
Linux | WEB服务器的部署及优化
运维·服务器
看山还是山,看水还是。4 小时前
网星安全AWS攻防方案,重磅发布!
运维·笔记·安全·云计算·aws
hi0_65 小时前
Git 第一讲---基础篇 git基础概念与操作
linux·服务器·c++·git
蠢货爱好者5 小时前
Linux中web服务器的部署及优化
linux·服务器·前端