总是提示验证码异常,网页类有关问题,请教怎么解决呢
总是提示验证码错误,网页类问题,请问如何解决呢?
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
If URL = "http://www.zaidudu.com/user/login.aspx" Then
Dim vDoc, vtag
Dim i As Integer
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase$(vDoc.All(i).tagName) = "INPUT" Then
Set vtag = vDoc.All(i)
Select Case vtag.Type
Case "text"
If vtag.Id = "username" Then vtag.Value = "test001" '帐号
Case "password"
If vtag.Id = "password" Then vtag.Value = "123456" '密码
Case "submit"
vtag.Click
Exit Sub
End Select
End If
Next i
End If
If URL = "http://www.zaidudu.com/User/LoginTran.aspx?GotoUrl=http://www.zaidudu.com" Then
WebBrowser1.Navigate "http://www.zaidudu.com/Book/5505/Index.aspx"
End If
If Not WebBrowser1.Busy Then
For Each x In WebBrowser1.Document.All
If x.tagName = "IMG" Then
If InStr(x.src, "ValidatorCode.ashx?name=Comment") <> 0 Then
Set CtrlRange = WebBrowser1.Document.body.createControlRange()
CtrlRange.Add (x)
CtrlRange.execCommand ("Copy")
Picture1.Picture = Clipboard.GetData
End If
End If
Next
End If
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "http://www.zaidudu.com/user/login.aspx"
End Sub
Private Sub Command1_Click()
Dim vDoc, vtag
Dim i As Integer
Dim x, CtrlRange
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If LCase$(vDoc.All(i).tagName) = "input" Or LCase$(vDoc.All(i).tagName) = "textarea" Then
Set vtag = vDoc.All(i)
Select Case vtag.Name
Case "CommentCode"
vtag.Value = Text2.Text '验证码
Case "CommentText"
vtag.Value = Text1.Text '内容
Case "ComSend" '模拟 单击 发送
vtag.Click
End Select
End If
Next i
End Sub
需要登陆才可以看到验证码,避免注册,我已经注册好了,写到代码里面了~~ 测试账号:test001 密码:123456
单击 command1 就把 text1 和 text2 的内容发送到网页上,但是,每次都提示说,验证码错误。。。。
请问:应该怎么解决呢?
------解决方案--------------------
不知道你注意没有,提示说,验证码错误的是个IE页面,已不是WebBrowser1的页面了,这过程中,网页刷新了一次,验证码当然就不对了!
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
If URL = "http://www.zaidudu.com/user/login.aspx" Then
Dim vDoc, vtag
Dim i As Integer
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If UCase$(vDoc.All(i).tagName) = "INPUT" Then
Set vtag = vDoc.All(i)
Select Case vtag.Type
Case "text"
If vtag.Id = "username" Then vtag.Value = "test001" '帐号
Case "password"
If vtag.Id = "password" Then vtag.Value = "123456" '密码
Case "submit"
vtag.Click
Exit Sub
End Select
End If
Next i
End If
If URL = "http://www.zaidudu.com/User/LoginTran.aspx?GotoUrl=http://www.zaidudu.com" Then
WebBrowser1.Navigate "http://www.zaidudu.com/Book/5505/Index.aspx"
End If
If Not WebBrowser1.Busy Then
For Each x In WebBrowser1.Document.All
If x.tagName = "IMG" Then
If InStr(x.src, "ValidatorCode.ashx?name=Comment") <> 0 Then
Set CtrlRange = WebBrowser1.Document.body.createControlRange()
CtrlRange.Add (x)
CtrlRange.execCommand ("Copy")
Picture1.Picture = Clipboard.GetData
End If
End If
Next
End If
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "http://www.zaidudu.com/user/login.aspx"
End Sub
Private Sub Command1_Click()
Dim vDoc, vtag
Dim i As Integer
Dim x, CtrlRange
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.length - 1
If LCase$(vDoc.All(i).tagName) = "input" Or LCase$(vDoc.All(i).tagName) = "textarea" Then
Set vtag = vDoc.All(i)
Select Case vtag.Name
Case "CommentCode"
vtag.Value = Text2.Text '验证码
Case "CommentText"
vtag.Value = Text1.Text '内容
Case "ComSend" '模拟 单击 发送
vtag.Click
End Select
End If
Next i
End Sub
需要登陆才可以看到验证码,避免注册,我已经注册好了,写到代码里面了~~ 测试账号:test001 密码:123456
单击 command1 就把 text1 和 text2 的内容发送到网页上,但是,每次都提示说,验证码错误。。。。
请问:应该怎么解决呢?
------解决方案--------------------
不知道你注意没有,提示说,验证码错误的是个IE页面,已不是WebBrowser1的页面了,这过程中,网页刷新了一次,验证码当然就不对了!