2011-05-03 33 views
1

我在C#網頁瀏覽器有一個頁面,包含C#單擊HTML提交按鈕沒有ID

<input type="submit" value="Sign out"> 

因爲它不具備一個ID,我無法用一個id使用WebBrowser的HTMLDocument的得到它並調用它的點擊。我現在如何使用htmldocument來點擊它?

回答

0

你可以給它自己的ID,你知道,它不一定是一個服務器控件。只要做到:

<input type="submit" ID="MySubmitButton1" value="Sign out"> 

你提到你想被點擊時,它叫什麼,或者只是手動添加onclick事件:

<input type="submit" onclick="CallMyFunction()" value="Sign out"> 

通「這個」這個問題,如果你想通過輸入控制進功能:

<input type="submit" onclick="CallMyFunction(this)" value="Sign out"> 

你可能不希望當你打電話的功能,以及提交按鈕後什麼,所以你可能想是這樣的:

<input type="submit" onclick="return CallMyFunction()" value="Sign out"> 

function CallMyFunction() 
{ 
    bool IsFormValid = false; 

    // Check if form is valid 

    return IsFormValid; 
} 
+0

我不能編輯頁面。 – Drake 2011-05-03 15:01:32

+2

@Anon,沒問題,很高興我可以幫忙。項目祝你好運! – 2011-05-03 18:59:08

0

假設你沒有在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"); 
} 

請注意,如果存在多個匹配元素(僅第一個將被單擊),則此方法並不合適。

+0

你的答案是拋出錯誤。 – Drake 2011-05-03 15:00:16

+1

你的錯誤是拋出答案 – 2011-05-03 15:11:47

+0

你的代碼不起作用,但它確實給了我一個想法。謝謝 – Drake 2011-05-03 16:51:32

0

這個怎麼樣:

webbrowser1.Document.Forms[0].InvokeMember("submit");