我需要自动化一个widsite的登录过程。 谷歌搜索了一段时间后,我写了这段代码。 但问题是在运行此代码后,没有错误,没有输出。 我无法知道我哪里出错了。
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");
}
谢谢。
答案 0 :(得分: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);