IE浏览器交互
2010年12月11日
VB与――自动填表
VB填充IE上的输入框并提交
假设登录页面的HTML代码如下:
testPage
用户:
密码:
很简单的页面,在上面有一个登录的Form,一个用户名输入框LoginName,一个密码输入框LoginPassword和一个提交按钮clickme
然后用IE打开这个页面,注意页面的title设置为testPage。
然后打开VB,在工程中引用Microsoft internet controls:
Private Sub Command1_Click()
Dim IEList As New ShellWindows
Dim browser
Dim Doc
On Error Resume Next
'遍历当前地浏览器窗口
For Each browser In IEList
'找到需要地IE窗口
If browser.Document.Title = "testPage" Then
'获得浏览器地文档对象
Set Doc = browser.Document
'填写用户名字段
Doc.body.All("LoginName").Value = "eddie"
'填写密码字段
Doc.body.All("LoginPassword").Value = "123456"
'提交
Doc.body.All("clickme").Click
End If
Next
End Sub
怎么编程把用户名,密码提交到网页上的登录页?
首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
假设你的HTML页面表单代码如下:
注意其中元素的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
点击Command1就可以自动填表并提交了。
'怎么编程把用户名,密码提交到网页上的登录页?
'首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
'假设你的HTML页面表单代码如下:
'
' 请填写下面表单注册(*项为必添项)
' *姓名
'' *昵称
' 电子邮件
' *密码
'
'
'注意其中元素的type?Name?value属性?然后VB中的代码如下:
Private Sub Command1_Click()
WebBrowser1.Navigate "http://bbs.hackht.com/"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim vDoc, vTag '申明变量,好给下面的引用做铺垫
Dim i As Integer '申明变量i
Set vDoc = WebBrowser1.Document '①为了写代码方便简明,将WebBrowser1控件的Document元素赋值给vDoc,从此,vDoc就等同于 Webbrowser1.Document这一个元素了
For i = 0 To vDoc.All.length - 1 '用for语句遍览WebBrowser1控件里显示的网页里的所有元素, WebBrowser1.Document.All是指的所有元素,加上length就是所有元素的个数的序号,但是这些元素序号是从0开始计数的,所以序号总比元素的个数要大一。所以为了表示个数,必须减上1.
If UCase(vDoc.All(i).tagName) = "INPUT" Then 'WebBrowser1.Document.all(i)是指的当前的元素,tagName的意思是标签,标签是指的HTML代码里的标签,比如,input是标签,而name是指的标签的名字 ,至于Ucase函数则是使括号里的结果变成大写
Set vTag = vDoc.All(i) '此处作用同①
If vTag.Type = "text" Or vTag.Type = "password" Then 'type是类型,此处是说元素标签的类型是什么,比如,此处是标签类型是一个text,即文本框
Select Case vTag.Name 'select条件语句,判断标签的名字
Case "pwuser" '如果标签名字是"pwuser"
vTag.Value = "XXXXXXX" '标签的值(value)等于多少。
Case "pwpwd"
vTag.Value = "PPPPPPP"
End Select
ElseIf vTag.Type = "submit" Then '或者如果类型是submit(提交按钮)
vTag.Click '模拟鼠标的点击
End If
End If
Next i
End Sub其中 vTag.Value = "XXXXXXX"中的XXXXXXX代表你的论坛ID或用户名,PPPPPPP代表你的密码
2010年12月11日
VB与――自动填表
VB填充IE上的输入框并提交
假设登录页面的HTML代码如下:
testPage
用户:
密码:
很简单的页面,在上面有一个登录的Form,一个用户名输入框LoginName,一个密码输入框LoginPassword和一个提交按钮clickme
然后用IE打开这个页面,注意页面的title设置为testPage。
然后打开VB,在工程中引用Microsoft internet controls:
Private Sub Command1_Click()
Dim IEList As New ShellWindows
Dim browser
Dim Doc
On Error Resume Next
'遍历当前地浏览器窗口
For Each browser In IEList
'找到需要地IE窗口
If browser.Document.Title = "testPage" Then
'获得浏览器地文档对象
Set Doc = browser.Document
'填写用户名字段
Doc.body.All("LoginName").Value = "eddie"
'填写密码字段
Doc.body.All("LoginPassword").Value = "123456"
'提交
Doc.body.All("clickme").Click
End If
Next
End Sub
怎么编程把用户名,密码提交到网页上的登录页?
首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
假设你的HTML页面表单代码如下:
注意其中元素的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
点击Command1就可以自动填表并提交了。
'怎么编程把用户名,密码提交到网页上的登录页?
'首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
'假设你的HTML页面表单代码如下:
'
' 请填写下面表单注册(*项为必添项)
' *姓名
'' *昵称
' 电子邮件
' *密码
'
'
'注意其中元素的type?Name?value属性?然后VB中的代码如下:
Private Sub Command1_Click()
WebBrowser1.Navigate "http://bbs.hackht.com/"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim vDoc, vTag '申明变量,好给下面的引用做铺垫
Dim i As Integer '申明变量i
Set vDoc = WebBrowser1.Document '①为了写代码方便简明,将WebBrowser1控件的Document元素赋值给vDoc,从此,vDoc就等同于 Webbrowser1.Document这一个元素了
For i = 0 To vDoc.All.length - 1 '用for语句遍览WebBrowser1控件里显示的网页里的所有元素, WebBrowser1.Document.All是指的所有元素,加上length就是所有元素的个数的序号,但是这些元素序号是从0开始计数的,所以序号总比元素的个数要大一。所以为了表示个数,必须减上1.
If UCase(vDoc.All(i).tagName) = "INPUT" Then 'WebBrowser1.Document.all(i)是指的当前的元素,tagName的意思是标签,标签是指的HTML代码里的标签,比如,input是标签,而name是指的标签的名字 ,至于Ucase函数则是使括号里的结果变成大写
Set vTag = vDoc.All(i) '此处作用同①
If vTag.Type = "text" Or vTag.Type = "password" Then 'type是类型,此处是说元素标签的类型是什么,比如,此处是标签类型是一个text,即文本框
Select Case vTag.Name 'select条件语句,判断标签的名字
Case "pwuser" '如果标签名字是"pwuser"
vTag.Value = "XXXXXXX" '标签的值(value)等于多少。
Case "pwpwd"
vTag.Value = "PPPPPPP"
End Select
ElseIf vTag.Type = "submit" Then '或者如果类型是submit(提交按钮)
vTag.Click '模拟鼠标的点击
End If
End If
Next i
End Sub其中 vTag.Value = "XXXXXXX"中的XXXXXXX代表你的论坛ID或用户名,PPPPPPP代表你的密码