如何解决如何填写WebForm并单击带有WebBrowser控件的Submit按钮?
如何使用Webbrowser控件单击此SUBMIT
按钮?
我尝试过:
For Each divSect As HtmlElement In Webbrowser1.Document.GetElementsByTagName("button")
If divSect.OuterHtml.Contains("Accedi") Then
For Each elem As HtmlElement In divSect.Children
If elem.GetAttribute("type") = "button" Then
elem.InvokeMember("click")
End If
Next
End If
Next
但它不会返回任何内容。
解决方法
以下是使用WebBrowser控件执行WebForm登录的示例过程。
►注意:我建议事先激活WebBrowser仿真高级功能,以备不时之需。阅读a description here(请参阅lists = {}
for i in range(parameter):
lists.setdefault(i,[])
类):
(WebBrowserAdvancedFetures
密钥可能不存在,因此可能有必要先创建它)
- 在导航到地址之前先订阅WebBrowser.DocumentCompleted事件
- 如How to get an HtmlElement value inside Frames/IFrames?中所述,文档实际上可能由多个Frame / IFrame组成(后者很常见)。在这种情况下,您需要多次处理
FEATURE_GPU_RENDERING
,因为每个Frame / IFrame都有自己的Document
- 如How to get an HtmlElement value inside Frames/IFrames?中所述,文档实际上可能由多个Frame / IFrame组成(后者很常见)。在这种情况下,您需要多次处理
- 在引发事件时,检查WebBrowser.ReadyState是否为WebBrowserReadyState.Complete:如果不是,则返回(我们不想处理部分文档)。
- 当前文档完成后,找到具有特定ID或类名的表单:这是我们要填写的登录表单。
- 找到表单后,解析其Document并选择需要值的
DocumentCompleted
元素。 - 如果找到了所有元素并设置了它们的值,请找到
INPUT
按钮并调用其InvokeMember()方法,指定SUBMIT
处理程序以完成该过程并激活表单{ {1}}方法。 - 单击按钮后,WebBrowser重定向到登录页面,因此我们删除了
click
事件的处理程序:我们已经完成了,不再需要处理此事件。
►在表单的设计器中设置 POST
。
DocumentCompleted
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。