Witam,
Robię tak skromnie swoją pierwszą małą aplikację i mam pewien problem. Chciałbym, aby ta aplikacja automatycznie logowała się na stronę (np. na takiego facebooka). Problem polega na tym, że na facebooku takie logowanie działa, bo korzystam w kodzie z (GetElementById) i w strukturze facebooka, w htmlu jest faktycznie te id danej rzeczy zawarte np:
pole do wpisania e-maila ma id = email
pole do wpisania hasła ma id = pass
button do klikniecia zaloguj ma id = v_o_n
Kod wygląda tak:
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("email").SetAttribute("value", textBox1.Text);
webBrowser1.Document.GetElementById("pass").SetAttribute("value", textBox2.Text);
webBrowser1.Document.GetElementById("u_0_n").InvokeMember("click");
}
Wszystko działa jak należy. Mój problem jednak polega na tym, że jak chcę już na inną stronę przerobić tą aplikacje, żeby na inną stronę się logowała to niestety nie daje rady, bo na tej stronie nie ma zdefiniowanych id a są classy i właśnie nie mogę sobie z tym poradzić...
Znalazłem w necie pomocny (?) kod, ale nie wiem za bardzo jak go zastosować
static IEnumerable<HtmlElement> ElementsByClass(HtmlDocument doc, string className)
{
foreach (HtmlElement e in doc.All)
if (e.GetAttribute("className") == className)
yield return e;
}
Mógłby jeszcze ktoś wytłumaczyć o co chodzi z
InvokeMember("click")
Bo jeśli zmienie choć jedną literkę w tym stringu to już moja aplikacja nie kliknie przycisku "Zaloguj", byłem pewien, że ten "click" jest nazwą tylko dla mnie, a to chyba jakaś metoda jest czy coś w tym stylu