WebBrowser控件自动提交表单

网站UI设计

  工作中有这样的场景,需要手动填写很多格式一样的表单,然后点击提交。如果数据在Excel中,一个个的copy,重复性工作太繁琐。今天就介绍一个实现网页自动化的控件--WebBrowser控件。 ﹥﹥先给大家看看效果:(自动填写注册页面的表单数据) 这个效果稍做改变,加个循环,就可以实现批量填入网页表单数据,并自动提交。(备注:公司内部的表单一般是不会有验证码的,所以暂时不用考虑识别验证码的工作。) 这就是WebBrowser控件的强大之处。下面就教大家如何实现上述网页自动化的效果。 ﹥﹥何为WebBrower? WebBrowser 是微软提供的一个用于浏览网页的 ActiveX 控件,是植入在程序中一个控件,网页显示在窗体中.可以利用WebBrowser 对网页进行控制,进行一些操作。 在VBA中WebBrowser 控件插入到 VBA 的用户窗体、一般情况下,VBA 的控件工具箱中找不到该控件,需要在控件工具箱点击右键,在右键菜单中选择“附加控件”,在附加控件对话框中,找到“Microsoft Web Browser”并且勾选。 控件工具箱中出现一个地球形状的控件,这样就可以把该控件和其他控件一样,拖放到用户窗体中使用。 ﹥﹥制作方法: ■第一步:拖拽控件到窗体上,添加两个按钮。一个是打开网页按钮,一个是填入数据按钮、一个点击【提交按钮】的按钮。(实际可以合为一个按钮,这里只是为了方便演示操作) ■第二步:分析网页结构,找出需要填写的表单文本框ID,还有提交按钮的ID。 网页F12调出开发者工具,可以看到,对应于网页上具体的控件内容,都有具体的html代码。 找到填写昵称的代码段,我们看到,昵称文本框的ID为"inputName",这就是我们需要的。用相同的方法,找到其他几个文本框的ID。 ■第三步:双击"打开网页"按钮,填入以下代码; 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控件提取网页的数据,因为网页都是加载成功后的数据,所以内容基本都能提取成功。

标签: 网站UI设计