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,但我没有看到任何设置上传默认值的首选项。
在此网页上: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,但我没有看到任何设置上传默认值的首选项。