为什么html我表单提交文本框数据获取不到_WebBrowser控件自动提交表单

工作中有这样的场景,需要手动填写很多格式一样的表单,然后点击提交。如果数据在Excel中,一个个的copy,重复性工作太繁琐。今天就介绍一个实现网页自动化的控件--WebBrowser控件。

﹥﹥先给大家看看效果:(自动填写注册页面的表单数据)

279e9fb2d2ac4f5bdd642f322b9a9595.gif

这个效果稍做改变,加个循环,就可以实现批量填入网页表单数据,并自动提交。(备注:公司内部的表单一般是不会有验证码的,所以暂时不用考虑识别验证码的工作。)

这就是WebBrowser控件的强大之处。下面就教大家如何实现上述网页自动化的效果。

﹥﹥何为WebBrower?

WebBrowser 是微软提供的一个用于浏览网页的 ActiveX 控件,是植入在程序中一个控件,网页显示在窗体中.可以利用WebBrowser 对网页进行控制,进行一些操作。

在VBA中WebBrowser 控件插入到 VBA 的用户窗体、一般情况下,VBA 的控件工具箱中找不到该控件,需要在控件工具箱点击右键,在右键菜单中选择“附加控件”,在附加控件对话框中,找到“Microsoft Web Browser”并且勾选。

ae082ff4b74e69f110235360595bf499.png

控件工具箱中出现一个地球形状的控件,这样就可以把该控件和其他控件一样,拖放到用户窗体中使用。

a98e97e0e3a2d44cbec34ab3303e2b01.png

﹥﹥制作方法:

■第一步:拖拽控件到窗体上,添加两个按钮。一个是打开网页按钮,一个是填入数据按钮、一个点击【提交按钮】的按钮。(实际可以合为一个按钮,这里只是为了方便演示操作)

d2f6e6d9985b9a3265911ed71469c640.png

■第二步:分析网页结构,找出需要填写的表单文本框ID,还有提交按钮的ID。

网页F12调出开发者工具,可以看到,对应于网页上具体的控件内容,都有具体的html代码。

89c475cd27e964af50ada960d589b5cb.gif

找到填写昵称的代码段,我们看到,昵称文本框的ID为"inputName",这就是我们需要的。用相同的方法,找到其他几个文本框的ID。

28008c0b279ab13df6029f9e34898eb8.png

■第三步:双击"打开网页"按钮,填入以下代码;

Private Sub CommandButton1_Click() UserForm1.WebBrowser1.Navigate "http://zc.7k7k.com/" UserForm1.WebBrowser1.Silent = True'禁止安全弹窗提醒End Sub

双击"填入数据"按钮,填入以下代码

Private Sub CommandButton2_Click() With UserForm1.WebBrowser1.Document .getElementById("inputName").Value = Range("a2") .getElementById("inputPwd").Value = Range("b2") .getElementById("inputRePwd").Value = Range("b2") .getElementById("inputRealName").Value = Range("c2") .getElementById("inputCardId").Value = Range("d2") End WithEnd Sub

双击"点击按钮"按钮,填入以下代码:(实现提交按钮的点击)

Private Sub CommandButton3_Click() Set doc = UserForm1.WebBrowser1.Document For i = 0 To doc.All.Length - 1 If (LCase(doc.All(i).tagname)) = "input" Then If (LCase(doc.All(i).Type)) = "submit" Then Set tg = doc.All(i) tg.Click Exit Sub End If End If Next iEnd Sub

这只是个简单的例子,复杂的网页需要具体的分析解决。

我们也可以利用WebBrowser控件提取网页的数据,因为网页都是加载成功后的数据,所以内容基本都能提取成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值