尝试通过C#程序登录网站

我是C#的新手,所以我在其他问题中寻找这个主题,但它们不适合我。 我想要做的是我目前正尝试使用ac#program(我正在尝试实现)登录我学校的服务器。 我想要做的是我知道页面的代码,所以我使用c#的web浏览器导航然后我只想在输入框中写入名称和密码,这就是我卡住的地方。 你能给我任何建议吗?

如果你想查看页面: https : //suis.sabanciuniv.edu/prod/twbkwbis.P_SabanciLogin

谢谢你的建议。

这里我是如何使用代码的(编辑:添加了事件处理程序,但这是我第一次使用,所以它让我“对象引用未设置为对象的实例”):

private void buttonGo_Click(object sender, EventArgs e) { try { string input = "https://suis.sabanciuniv.edu/prod/twbkwbis.P_SabanciLogin"; webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted); webBrowser1.Navigate(input); HtmlDocument doc = webBrowser1.Document; HtmlElement userName = doc.GetElementById("UserID"); HtmlElement pass = doc.GetElementById("PIN"); HtmlElement submit = doc.GetElementById("Login"); userName.SetAttribute("value", textID.Text); pass.SetAttribute("value", textPASS.Text); submit.InvokeMember("Click"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { var webBrowser = sender as WebBrowser; webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted; MessageBox.Show(webBrowser.Url.ToString()); } } 

}

最后我解决了问题,我有点欺骗,但设法解决。 这是工作代码:

 private void buttonGo_Click(object sender, EventArgs e) { try { string input = "https://suis.sabanciuniv.edu/prod/twbkwbis.P_SabanciLogin"; webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted); webBrowser1.Navigate(input); HtmlDocument doc = webBrowser1.Document; //HtmlElement userName = doc.GetElementById("UserID"); These not worked because ID of the elements were hidden so they are here to show which of these did not work. //HtmlElement pass = doc.GetElementById("password"); HtmlElement submit = webBrowser1.Document.Forms[0].Document.All["PIN"].Parent.Parent.Parent.NextSibling.FirstChild; //userName.SetAttribute("value", textID.Text); //pass.SetAttribute("value", textPASS.Text); webBrowser1.Document.Forms[0].All["UserID"].SetAttribute("value", textID.Text); webBrowser1.Document.Forms[0].All["PIN"].FirstChild.SetAttribute("value", textPASS.Text); submit.InvokeMember("Click"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { var webBrowser = sender as WebBrowser; webBrowser.DocumentCompleted -= WebBrowser_DocumentCompleted; MessageBox.Show(webBrowser.Url.ToString()); } 

您需要首先找到用户名和密码字段的输入框作为ID或节点。 然后分配它们:

 HtmlDocument doc = webBrowser1.Document; HtmlElement email = doc.GetElementById("email"); HtmlElement pass = doc.GetElementById("pass"); HtmlElement submit = doc.GetElementById("LoginButton"); email.SetAttribute("value", "InsertYourEmailHere"); //Same for password submit.InvokeMember("Click");