Я новичок в C#, поэтому я искал эту тему в других вопросах, но они были не для меня. То, что я пытаюсь сделать, я пытаюсь войти на серверы моей школы, используя программу C# (которую я пытаюсь реализовать). То, что я пытаюсь сделать, это знать код страницы, поэтому я использую веб-браузер C# для навигации, тогда я просто хочу писать имя и пароль в поля ввода, и именно здесь я застрял. Не могли бы вы дать мне какие-нибудь советы?Попытка войти на сайт через программу C#
Если вы хотите посмотреть на странице: https://suis.sabanciuniv.edu/prod/twbkwbis.P_SabanciLogin
Спасибо за ваши советы.
Вот как я использовал код (Edit: Добавлено EventHandler, но это мой первый раз, используя так promts меня «ссылка на объект не установлено на экземпляр объекта»):
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());
}
Привет, мой турецкий друг, если вы используете XAML, просто добавить EventHandler завершенных там ... – Ave
Теперь, я пытался добавить обработчик событий, но я получаю сообщение об ошибке утра Я использую это неправильно? – Kaan
Удачи вам! Приятно слышать, что университет sabanci собирается получить приложение :) – Ave