Wybór pola formularza w C#

Wybór pola formularza w C#
DamianOS.MP5
DamianOS.MP5
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:74
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?

xeo545x39
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Lokalizacja:Kosmos
  • Postów:1571
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']")


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
edytowany 3x, ostatnio: xeo545x39
DamianOS.MP5
DamianOS.MP5
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:74
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:

Kopiuj
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:

Kopiuj
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?

xeo545x39
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 5 lat
  • Lokalizacja:Kosmos
  • Postów:1571
0

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


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
DamianOS.MP5
DamianOS.MP5
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:74
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. :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.