【发布时间】:2015-04-22 22:21:48
【问题描述】:
在此网页上:https://www.youtube.com/upload_defaults
我想调用一个函数,然后点击右上角的“保存”按钮。
没有 ID 或名称。我该怎么做?
【问题讨论】:
在此网页上:https://www.youtube.com/upload_defaults
我想调用一个函数,然后点击右上角的“保存”按钮。
没有 ID 或名称。我该怎么做?
【问题讨论】:
您可以使用按钮的不同 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();
作为参考,这里是按钮的标记:
<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>
其他想法:
更新:
我检查了Youtube API Reference,但没有看到任何设置上传默认值的首选项。
【讨论】:
elem.GetAttribute("classname") 而不是 elem.GetAttribute("class")