为什么一定要模拟键盘填写表单呢?直接给表单的元素赋值不行吗?这才是正宗的VB后台控制WebBrowser的方法。
比如网页表单上有如下这个文本框:
那么VB中可以这样直接赋值:
WebBrowser1.document.getElementById("username").Value = "myname"
或者:
WebBrowser1.document.getElementsByName("username")(0).Value = "myname"
或者:
WebBrowser1.document.getElementsByTagName("input")(0).Value = "myname" '假定这个文本框是网页上的第一个input
其他表单元素可以用上述类似的方法逐一赋值。
最后,找到submit按钮执行click方法即可提交表单了。如果submit按钮有id或name就最好办了,比如表单上的submit按钮是这样的:
那么VB中可以这样:
WebBrowser1.document.getElementById("submit1").Click
如果没有id或name就稍微复杂一些:
Dim objs As Object, obj As Object
Set objs = WebBrowser1.document.getElementsByTagName("input")
For Each obj In objs
If obj.Type = "submit" Then
obj.Click
Exit For
End If
Next