2010-08-13 65 views
0

我需要自動化一個widsite的登錄過程。 谷歌搜索一段時間後,我寫了這段代碼。 但問題是運行此代碼後,沒有錯誤,沒有輸出。 我無法知道我出錯的地方。通過窗口提交html表格

private void Form1_Load(object sender, EventArgs e) 

     { 
      WebBrowser browser = new WebBrowser(); 
      string target = "http://authcisco/auth.html"; 
      browser.Navigate(target); 
      browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Credentials); 
} 
private void Credentials(object sender, WebBrowserDocumentCompletedEventArgs e) 

     { 
      WebBrowser b = (WebBrowser)sender; 
      b.Document.GetElementById("userName").SetAttribute("value", "shyam"); 
      b.Document.GetElementById("pass").SetAttribute("value", "shyam"); 
      b.Document.GetElementById("Submit").InvokeMember("click"); 

     } 

謝謝。

回答

1

我想說使用HttpWebRequest而不是自動化瀏覽器實例會更容易。

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create("http://authcisco/auth.html"); 
wr.Method = "POST"; 
wr.ContentType = "application/x-www-form-urlencoded"; 
string content = string.Format("userName={0}&pass={1}", HttpUtility.UrlEncode(Username), HttpUtility.UrlEncode(Password)); 
byte[] data = System.Text.Encoding.ASCII.GetBytes(content); 
wr.ContentLength = data.Length; 
wr.GetRequestStream().Write(data, 0, data.Length); 
+0

我無法獲取HttpUtility的參考。 – Gokul 2010-08-13 12:58:26

+0

你不需要它在你的具體情況;在任何情況下它都包含在System.Web程序集中,通常不會默認添加它。 – Joey 2010-08-13 13:58:30