我在C#網頁瀏覽器有一個頁面,包含C#單擊HTML提交按鈕沒有ID
<input type="submit" value="Sign out">
因爲它不具備一個ID,我無法用一個id使用WebBrowser的HTMLDocument的得到它並調用它的點擊。我現在如何使用htmldocument來點擊它?
我在C#網頁瀏覽器有一個頁面,包含C#單擊HTML提交按鈕沒有ID
<input type="submit" value="Sign out">
因爲它不具備一個ID,我無法用一個id使用WebBrowser的HTMLDocument的得到它並調用它的點擊。我現在如何使用htmldocument來點擊它?
你可以給它自己的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;
}
假設你沒有在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");
}
請注意,如果存在多個匹配元素(僅第一個將被單擊),則此方法並不合適。
這個怎麼樣:
webbrowser1.Document.Forms[0].InvokeMember("submit");
我不能編輯頁面。 – Drake 2011-05-03 15:01:32
@Anon,沒問題,很高興我可以幫忙。項目祝你好運! – 2011-05-03 18:59:08