﹥﹥先給大家看看效果:(自動填寫注冊頁面的表單數(shù)據(jù))
這個效果稍做改變,加個循環(huán),就可以實現(xiàn)批量填入網(wǎng)頁表單數(shù)據(jù),并自動提交。(備注:公司內(nèi)部的表單一般是不會有驗證碼的,所以暫時不用考慮識別驗證碼的工作。)
這就是WebBrowser控件的強大之處。下面就教大家如何實現(xiàn)上述網(wǎng)頁自動化的效果。
﹥﹥何為WebBrower?
WebBrowser 是微軟提供的一個用于瀏覽網(wǎng)頁的 ActiveX 控件,是植入在程序中一個控件,網(wǎng)頁顯示在窗體中.可以利用WebBrowser 對網(wǎng)頁進行控制,進行一些操作。
在VBA中WebBrowser 控件插入到 VBA 的用戶窗體、一般情況下,VBA 的控件工具箱中找不到該控件,需要在控件工具箱點擊右鍵,在右鍵菜單中選擇“附加控件”,在附加控件對話框中,找到“Microsoft Web Browser”并且勾選。
控件工具箱中出現(xiàn)一個地球形狀的控件,這樣就可以把該控件和其他控件一樣,拖放到用戶窗體中使用。
﹥﹥制作方法:
■第一步:拖拽控件到窗體上,添加兩個按鈕。一個是打開網(wǎng)頁按鈕,一個是填入數(shù)據(jù)按鈕、一個點擊【提交按鈕】的按鈕。(實際可以合為一個按鈕,這里只是為了方便演示操作)
■第二步:分析網(wǎng)頁結(jié)構(gòu),找出需要填寫的表單文本框ID,還有提交按鈕的ID。
網(wǎng)頁F12調(diào)出開發(fā)者工具,可以看到,對應于網(wǎng)頁上具體的控件內(nèi)容,都有具體的html代碼。
找到填寫昵稱的代碼段,我們看到,昵稱文本框的ID為"inputName",這就是我們需要的。用相同的方法,找到其他幾個文本框的ID。
■第三步:雙擊"打開網(wǎng)頁"按鈕,填入以下代碼;
Private Sub CommandButton1_Click()
UserForm1.WebBrowser1.Navigate "http://zc.7k7k.com/"
UserForm1.WebBrowser1.Silent = True'禁止安全彈窗提醒
End Sub
雙擊"填入數(shù)據(jù)"按鈕,填入以下代碼
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 With
End Sub
雙擊"點擊按鈕"按鈕,填入以下代碼:(實現(xiàn)提交按鈕的點擊)
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 i
End Sub
這只是個簡單的例子,復雜的網(wǎng)頁需要具體的分析解決。
我們也可以利用WebBrowser控件提取網(wǎng)頁的數(shù)據(jù),因為網(wǎng)頁都是加載成功后的數(shù)據(jù),所以內(nèi)容基本都能提取成功。
聯(lián)系客服