[英]C# Click html submit button with no id
我的 C# 網絡瀏覽器中有一個頁面,其中包含
<input type="submit" value="Sign out">
由於它沒有 id,我無法使用 webbrowser 的 htmldocument 通過 id 獲取它並調用它的點擊。 我現在如何使用 htmldocument 單擊它?
那這個呢:
webbrowser1.Document.Forms[0].InvokeMember("submit");
如何處理具有多個沒有 id 的 html 提交按鈕的頁面? 如何識別第二行的提交按鈕。 多個 html 按鈕
你可以給它你自己知道的 ID,它不必是服務器控件。 做就是了:
<input type="submit" ID="MySubmitButton1" value="Sign out">
您提到您想在單擊時調用某些內容,或者只需手動添加 onclick 事件:
<input type="submit" onclick="CallMyFunction()" value="Sign out">
如果要將輸入控件傳遞給 function,則將“this”傳遞給它:
<input type="submit" onclick="CallMyFunction(this)" value="Sign out">
當您調用 function 時,您可能不希望提交按鈕發布任何內容,因此您可能想要類似的內容:
<input type="submit" onclick="return CallMyFunction()" value="Sign out">
function CallMyFunction()
{
bool IsFormValid = false;
// Check if form is valid
return IsFormValid;
}
假設您無法控制 HTML 頁面,因此無法向元素添加 ID,您可以使用HtmlDocument.GetElementsByTagName
獲取所有輸入元素,然后按type
和value
屬性過濾該集合。 就像是:
var firstMatchingSubmit = (from input in myDocument.GetElementsByTagName("input")
where input.GetAttribute("type") == "submit" &&
input.GetAttribute("value") == "Sign out"
select input).FirstOrDefault();
if (firstMatchingSubmit != null)
{
firstMatchingSubmit.RaiseEvent("click");
}
請注意,如果有多個匹配元素(只會單擊第一個元素),則此方法不合適。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.