VB WebBrowser 点击按钮

VB WebBrowser click button

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

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

您可以使用不同的 CSS class 按钮: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();

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

<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;"><span class="yt-uix-button-content">Save</span></button>

其他想法:

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

更新:

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