Wybór pola formularza w C#

0

Podczas rejestracji na interia.pl, w drugim kroku, pojawiają się do wypełniania różne pola, m.in. do wyboru zawodu:
user image

Powyższemu obrazkowi odpowiada taki fragment:
user image

Chciałbym teraz, aby w mój program automatycznie wybierał któreś z tych pól, np. "zawodowe". I tu pojawia się problem. Tych klas "cs-options" jest więcej. Więc najpierw dobrze byłoby wybrać tego spana, gdzie jest tekst "Wykształcenie", przejść poziom wyżej, wybrać jakąś "data-value" i zasymulować kliknięcie. Myślałem, żeby zrobić to za pomocą wyrażenia XPath, ale nie wiem jak takie wyrażenie napisać i czy w ogóle jest to dobry pomysł.

Poradzi ktoś jak automatycznie wykonać takie wybieranie pola w formularzu?

1

Dla data-value = 1 czyli Podstawowe, wybiera li
XPath: //span[text()='Wykształcenie']/../../li[@data-value=1]
jQuery: $("span:contains('Wykształcenie')").parent().parent().find("li[data-value='1']")

0

Dzięki za odp.

Sprawdziłem sobie na stronie i właśnie o takie zapytanie mi chodziło. Teraz chcę zasymulować kliknięcie wybranej opcji w programie. Obecnie tak wykonuję XPatha:

string xPathQuery = @"//span[text()='Wykształcenie']/../../li[@data-value=1]";
string code = string.Format("document.evaluate(\"//span[text()='Wykształcenie']/../../li[@data-value=1]\", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.nodeValue;", xPathQuery);
string iResult = (string)webBrowser1.Document.InvokeScript("eval", new object[] { code });
webBrowser1.Document.GetElementById(iResult).InvokeMember("click");

i problem w tym, że moje iResult to nie jest ID elementu. Spróbowałem też JQuery zamiast XPatha:

string funkcja = "function MyCLickFunction(){$(\"span:contains('Wykształcenie')\").parent().parent().find(\"li[data-value='1']\").click()}";
webBrowser1.Document.InvokeScript(funkcja);

i to niestety nie działa. Jak poprawnie wykonać auto kliknięcie tego elementu?

0

Zobacz dokładnie na jaki element działa onclick, pobaw się jQ w przeglądarce.

0

Działa!!! Zrobiłem to za pomocą wyrażenia jQuery, które podałeś. Sam na takie rozwiązanie nigdy bym nie wpadł. Dziękuję za pomoc. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1