如何在VB上单击js按钮 [英] How can I click a js button on VB

查看:175
本文介绍了如何在VB上单击js按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用视觉基本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>


解决方案

三个选项:


  1. 直接执行javascript函数

  2. 使用InnerHTML搜索所有A元素

  3. 搜索通过使用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>&nbsp;</span><div class="btn3">Like</div></a>

解决方案

Three options:

  1. Execute the javascript function itself directly
  2. Search through all A elements using InnerHTML
  3. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆