如何在VB上单击js按钮 [英] How can I click a js button on VB
问题描述
我使用视觉基本12.我有一个web浏览器在我的形式。我想点击它,但我有一个问题。按钮是一个javascript button.so这个代码不工作:
WebBrowser1.Document.All(button id)。InvokeMember(click)
pre>
这是button的hmtl。我可以点击它。
< a class =single_like_button btn3-wraponclick =openFbLWin_407311();>
< span>& nbsp;< / span>< div class =btn3> Like< / div>< / a>
解决方案三个选项:
- 直接执行javascript函数
- 使用InnerHTML搜索所有A元素
- 搜索通过使用ClassName的所有A元素
直接执行javascript函数
编辑:感谢pquest指出您可以直接执行javascript功能:
浏览器。 InvokeScript(openFbLWin_407311);
更复杂(不是真的必要):
WbBrowser.Navigate(new Uri(javascript:(function(){openFbLWin_407311();})();))
使用InnerHTML搜索所有A个元素
请查看以下问题:点击WebBrowser控件中的HTML链接
在你的情况下,基于这个链接,这样:
Dim links As HtmlElementCollection
links = WebBrowser1.Document.GetElementsByTagName(A)
对于每个链接As HtmlElement In links
如果link.InnerHtml.IndexOf(Like)< -1 then
link.InvokeMember(Click)
结束如果
下一页
使用ClassName搜索所有A个元素
然后
link.InvokeMember(Click)
如果
,则结束$ GetAttribute(className)=single_like_button btn3-
全部三个方法:
VB.net
公共类Form1
私有子Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load
WebBrowser1.Url = New Uri(file:/// D:/clickJSbutton.html)
End Sub
Private Sub Button1_Click (ByVal sender As System.Object,ByVal e As System.EventArgs)句柄Button1.Click
'方法1:直接执行javascript
Browser.InvokeScript(openFbLWin_407311);
'WebBrowser1.Navigate(New Uri(javascript:(function(){openFbLWin_407311();})();))
方法2:从所有链接
Dim links As HtmlElementCollection
links = WebBrowser1.Document.GetElementsByTagName(A)
对于每个链接As HtmlElement In links
'方法2B:使用某种of internal html
如果link.InnerHtml.IndexOf(Like)<> -1 then
link.InvokeMember(Click)
End If
方法2C:使用className作为标识符
如果link.GetAttribute(className) =single_like_button btn3-wrap然后
link.InvokeMember(Click)
结束如果
下一页
结束子
结束类
i am using visual basic 12.there is a web browser in my form.İ want to click it but i have a problem.The button is a javascript button.so this code doesn't work:
WebBrowser1.Document.All("button id").InvokeMember("click")
Here is the hmtl of button.How can i click it.
<a class="single_like_button btn3-wrap" onclick="openFbLWin_407311();"> <span> </span><div class="btn3">Like</div></a>
解决方案Three options:
- Execute the javascript function itself directly
- Search through all A elements using InnerHTML
- Search through all A elements using ClassName
Execute the javascript function itself directly
Edit: Thanks to pquest for pointing out you can execute the javascript function directly with:
Browser.InvokeScript("openFbLWin_407311");
More complicated (and not really necessary) :
WbBrowser.Navigate( new Uri("javascript:(function(){ openFbLWin_407311(); })();") )
Search through all A elements using InnerHTML
Have a look at the following question: Click an HTML link inside a WebBrowser Control
In your case, based on that link, something like this:
Dim links As HtmlElementCollection links = WebBrowser1.Document.GetElementsByTagName("A") For Each link As HtmlElement In links If link.InnerHtml.IndexOf("Like") <> -1 Then link.InvokeMember("Click") End If Next
Search through all A elements using ClassName
If link.GetAttribute("className") = "single_like_button btn3-wrap" Then link.InvokeMember("Click") End If
All Three Methods:
VB.net
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Url = New Uri("file:///D:/clickJSbutton.html") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Method 1: Execute javascript directly Browser.InvokeScript("openFbLWin_407311"); 'WebBrowser1.Navigate(New Uri("javascript:(function(){ openFbLWin_407311(); })();")) 'Method 2: Find the link from all links Dim links As HtmlElementCollection links = WebBrowser1.Document.GetElementsByTagName("A") For Each link As HtmlElement In links 'Method 2B: Using some kind of inner html If link.InnerHtml.IndexOf("Like") <> -1 Then link.InvokeMember("Click") End If 'Method 2C: Using className as identifier If link.GetAttribute("className") = "single_like_button btn3-wrap" Then link.InvokeMember("Click") End If Next End Sub End Class
这篇关于如何在VB上单击js按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!