VB實(shí)現(xiàn)自動(dòng)填表
2008年02月15日 星期五 上午 09:45
轉(zhuǎn): 怎么編程把用戶名,密碼提交到網(wǎng)頁(yè)上的登錄頁(yè)? 首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。 假設(shè)你的HTML頁(yè)面表單代碼如下: <form method="POST" action="http://chen/dll/chat/chatmain.exe/RegUser"> <p>請(qǐng)?zhí)顚懴旅姹韱巫?cè)(*項(xiàng)為必添項(xiàng))</p> <p>*姓名<input type="text" name="Name" size="20"></p> <p>*昵稱<input type="text" name="NickName" size="20"></p> <p>電子郵件<input type="text" name="EMail" size="20"></p> <p>*密碼<input type="text" name="Password" size="20"></p> <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重寫" name="B2"></p> </form> 注意其中元素的type、Name、value屬性。然后VB中的代碼如下: Private Sub Command1_Click() WebBrowser1.Navigate "http://chen/chat/newuser.htm" End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim vDoc, vTag Dim i As Integer Set vDoc = WebBrowser1.Document List1.Clear For i = 0 To vDoc.All.length - 1 If UCase(vDoc.All(i).tagName) = "INPUT" Then Set vTag = vDoc.All(i) If vTag.Type = "text" Or vTag.Type = "password" Then List1.AddItem vTag.Name Select Case vTag.Name Case "Name" vTag.Value = "IMGod" Case "NickName" vTag.Value = "IMGod" Case "Password" vTag.Value = "IMGodpass" Case "EMail" vTag.Value = "IMGod@paradise.com" End Select ElseIf vTag.Type = "submit" Then vTag.Click End If End If Next i End Sub 點(diǎn)擊Command1就可以自動(dòng)填表并提交了。
for i=0 to webbrowser1.document.frames.length '操作webBrowser1.document.frames(i).document next 操作這個(gè)webBrowser1.document.frames(i).document操作WebBrowser1.Document完全一樣, webbrowser1.document.frames.length為本頁(yè)內(nèi)框架數(shù)量 PS:本功能僅限填寫非跨域網(wǎng)頁(yè),對(duì)于跨域框架網(wǎng)頁(yè)沒找到什么好辦法,我只會(huì)一個(gè)比較笨的辦法。
webBrowser1.document.frames(2).frames(1).document可以定位到楨2的Document里面去。 無(wú)論多少層、多少楨,理論上都可以這樣定位的---跨區(qū)域除外,不過(guò)一般跨區(qū)域的不多。 ================== 網(wǎng)頁(yè)=(幀1+幀2+幀3+幀4) 變成了 網(wǎng)頁(yè)=[幀1+幀2+幀3(幀1+幀2)+幀4],即幀內(nèi)又套用幀了。我要填寫的部分在“幀3(幀1+幀2)”的幀2里。
|
|
|