【问题标题】:VB WebBrowser click buttonVB WebBrowser 点击按钮
【发布时间】:2015-04-22 22:21:48
【问题描述】:

在此网页上:https://www.youtube.com/upload_defaults
我想调用一个函数,然后点击右上角的“保存”按钮。

没有 ID 或名称。我该怎么做?

【问题讨论】:

    标签: html vb.net button click


    【解决方案1】:

    您可以使用按钮的不同 CSS 类:account-save-button

    在 VB.NET 中,像这样使用HtmlDocument.GetElementsByTagName

    Private Sub ClickSaveButton()
        If (WebBrowser1.Document IsNot Nothing) Then 
            Dim Elems As HtmlElementCollection 
            Dim WebOC as WebBrowser = WebBrowser1
    
        Elems = WebOC.Document.GetElementsByTagName("BUTTON")
    
            For Each elem As HtmlElement In Elems
                Dim CssClass As String = elem.GetAttribute("classname")
    
                If ((CssClass IsNot Nothing) And (CssClass.Length <> 0)) Then 
                    If CssClass.ToLower().Contains("account-save-button") Then 
                        elem.InvokeMember("click");
                        Exit For
                    End If 
                End If 
            Next 
        End If 
    End Sub
    

    要仅使用网络浏览器进行验证,请从浏览器的开发者控制台尝试此操作;它之所以有效,是因为 youtube 使用 jQuery:

    $(".account-save-button").click();

    或者纯javascript:document.getElementsByClassName('account-save-button')[0].click();

    作为参考,这里是按钮的标记:

    &lt;button class="yt-uix-button yt-uix-button-size-default yt-uix-button-primary account-save-button account-action-button" type="submit" onclick=";return true;"&gt;&lt;span class="yt-uix-button-content"&gt;Save&lt;/span&gt;&lt;/button&gt;

    其他想法:

    • 这基本上是屏幕抓取,当页面更改等时会导致应用程序变脆。
    • Google 可能已经为您想要完成的任务提供了一个 Web 服务 API。但这是个好问题: 您到底想完成什么?上下文是什么?我们或许可以提出更好的替代解决方案。

    更新

    我检查了Youtube API Reference,但没有看到任何设置上传默认值的首选项。

    【讨论】:

    • 感谢您的帮助。但不幸的是我没有让你的代码工作。
    • 它对我有用,但我确实不得不将它从上下文中拉出来。如果您显示您正在使用的实际代码,那么将答案与您的解决方案结合起来会更容易。
    • 好吧,如果我按下 Button3,我只想按下保存按钮。你能给我提供工作代码吗?会很棒。
    • 您的解决方案很好,但请注意它应该是 elem.GetAttribute("classname") 而不是 elem.GetAttribute("class")
    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多