vb /WebBrowser 网页中的图片按钮怎么实现模拟点击

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb /WebBrowser 网页中的图片按钮怎么实现模拟点击相关的知识,希望对你有一定的参考价值。

网页源码<td valign="bottom"><INPUT type="image" src="images/cx_enter.gif" width="41" height="16" border=0 name="imageField"> <img src="images/cx_reset.gif" width="41" height="16" border="0" style="cursor:hand;" onClick="MM_openBrWindow('readme.asp','','scrollbars=yes,width=500,height=400')" /></td>

参考技术A 实现模拟网页点击按钮的功能代码如下:
Private Sub Command1_Click()
WB1.Navigate Text1
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub Command4_Click()
Dim vDoc, vTag
Dim I As Integer
Set vDoc = WB1.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 = "submit" Then
List1.AddItem vTag.Name
Select Case vTag.Name
Case "btnBack"
vTag.Click
End Select
End If
End If
Next I
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
Dim a As Long
a = a + 1
Label1 = "已经运行了" & Fix(a / 60) & "分钟"
If a Mod 600 = 0 Then
Command4_Click
End If
End Sub
参考技术B Private Sub web_DocumentComplete(ByVal pDisp As Object, URL As Variant)
On Error Resume Next
set aa=web.Document.getElementsByTagName("img")
For Each a In aa
tmp=a.src
If InStr(tmp, "reset.gif") > 0 Then '按图片地址识别,点它
'a.scrollIntoView
a.Click
Exit For
End If
Next
Set aa = Nothing
参考技术C 看一下dom吧,web控件有一个属性叫document,我们可以使用它的函数:getelementById或者getelementByTagName来查找页面中的元素,然后调用它的click方法就ok了。追问

源代码为INPUT type="image" src="images/cx_enter.gif" width="41" height="16" border=0 name="imageField"> 
可否写成 vDoc.All.Item("imageField").Click

追答

貌似不行哦,你用getelementByName获得这个input后,再调用不久得啦

追问

getelementByName经常报错(“实时错误424 要求对象”)

追答

代码贴一下吧,报错哪里附近的代码都贴一下。

追问

If UCase(WebBrowser1.Document.All(i).Tagname) = "img" And WebBrowser1.Document.All(i).src = "enter.gif" Then '这行报错对象不支持该属性或方法

追答

哦,因为src,不是每个对象都有src这个属性的。
If UCase(WebBrowser1.Document.All(i).Tagname) = "img" then
if WebBrowser1.Document.All(i).src = "enter.gif" Then

代码改成这样,已经是img后,再去判断src属性。

追问

运行到这句就不运行了,

单独运行还是报一样的错

追答

循环那个i应该从1开始吧?

追问

还是不行呢,我发现网页源码有好几个“enter.gif”是不是这个原因?
vDoc.getelementbyid("imageField").Click可以运行的,但网页有两个一样的按钮都叫imageField,点击的是另一个该怎么识别我要选得那个呢
网址http://www.ntgjj.com/gjjcx.asp我要的是个人的那个查询

追答

这样吧。
Dim Doc As htmlDocument
Set Doc = Me.WebBrowser1.document
Doc.getElementsByName("imageField")(1).Click

追问

个人里的提交

本回答被提问者采纳

vb6 webbrowser 如何判断当前网页中获取焦点的是否一个文本框?

vb6 webbrowser控件 如何判断当前网页中获取焦点的是不是一个文本框? 求解,要求:通用于任何网页、只判断网页中当前获取焦点的是否是一个文本输入框,要求返回一个值,描述获取焦点的,是,或者不是文本输入框。谢谢!
请勿乱答,谢谢!
我是说,判断webbrowser浏览器控件中网页中的输入框控件是否获得焦点,不是让窗体上的textbox输入框控件获得焦点,所以 8285604 的回答也不够准确!

参考技术A text1.text="" '清空文本框的内容
text1.setfocus '获得文本框的输入焦点
参考技术B 不是

以上是关于vb /WebBrowser 网页中的图片按钮怎么实现模拟点击的主要内容,如果未能解决你的问题,请参考以下文章

webbrowser 执行网页中的JS

vb 中WebBrowser1打开网址点击

vb在打开网页的时候出现了这样的问题

vb6 webbrowser 如何判断当前网页中获取焦点的是否一个文本框?

如何解决VB中WebBrowser控件持续打开网页占用的内存

VB模拟鼠标点击webbrowser控件网页