2010-09-29 72 views
1

這是形式試圖登錄到Web表單代碼

<form action="j_security_check" method="post"> 
<div id="editForm"> 

<h2>Login</h2> 

<div class="errors"></div> 

<div class="row"> 
    <span class="label">Username:</span> 
    <span class="formw"><input type="text" name="j_username"></span> 
</div> 

<div class="row"> 
    <span class="label">Password:</span> 
    <span class="formw"><input type="password" name="j_password"></span> 

</div> 

<div class="submit"> 
    <input type="submit" value="Login"> 
</div> 
</div> 

</form></body> 

按鈕dosent有一個名稱,以便在IM如何得到這個工作跺着腳?按鈕多恩斯具有ID或名稱,所以我不能使用的getElementById或GetElementsByName

webBrowser1.Document.All.GetElementsByName("j_username")[0].SetAttribute("Value", "************"); 
     webBrowser1.Document.All.GetElementsByName("j_password")[0].SetAttribute("Value", "******"); 
     webBrowser1.Document.All["Login"].InvokeMember("click"); 

;

任何人有一個建議?

回答

2

你可以使用GetElementsByTagName

HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("INPUT"); 
    foreach (HtmlElement elem in elems) 
    { 
     String valueStr = elem.GetAttribute("value"); 
     if (valueStr != null && valueStr.Equals("Login")) 
     { 
      elem.InvokeMember("click");     
     } 
    } 

我知道,有更短的方式來做到這一點使用LINQ但是我認爲這是正在發生的事情的最明顯的例子。

+0

thx mate我明天工作時會檢查這個。 – Darkmage 2010-09-29 17:14:33

+0

ty mate得到這個工作正常。,,,但你有一個錯字,在你的文章中編輯nameStr到valueStr。 – Darkmage 2010-09-30 08:08:07

+0

Ahh謝謝,我從MSDN的'GetAttribute'的例子中看到了這個,我只是錯過了那個。 – 2010-09-30 17:09:23