簡體   English   中英

C# 點擊沒有id的html提交按鈕

[英]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 按鈕

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獲取所有輸入元素,然后按typevalue屬性過濾該集合。 就像是:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM