mam stronę napisaną w ASP z polem tekstowym z autopostback, jest to pole wyszukiwania, po wpisaniu wartości i wciśnięciu przycisku wyszukiwania pojawia się lista elementów spełniających kryteria wyszukiwania.
Moim celem jest napisanie z uzyciem Watir i Ruby automatu który będzie między innymi wpisywał wartość w pole i klikał przycisk.
Mam taki kod:
Po uruchomienia zachowuje się on tak, że wpisuje wartość w pole, ale przed klinięciem przycisku wyszukiwania wartość znika i przekazywany jest pusty string.
Gdy to samo robię klikając po stronie manualnie, wartość wpisana w pole wyszukiwania nie znika.
Jak objeść problem ze znikającymi wartościami wpisanymi w pole?
Bardzo proszę o pomoc.
Prawdopodobnie chodzi o ukryte pole _VIEWSTATE - nie mam teraz tego przed soba, ale pamietam na 99%, że ASP.NET ustawia handlery na ‘submit’ formularza, kopiujac wartosc tego pola (ale nie pamietam teraz skad -> gdzie). Sprobuj znalezc w zrodle strony onclick/onsubmit i powielic ‘recznie’ te operacje w rubym.
znajdz definicje funkcji __doPostBack. Jest wolana przez setTimeout z opoznieniem 0 przy kazdej zmianie wartosci pola (dla ciekawostki: opoznienie 0 to czesto stosowany trick, by nie blokowac glownego watku przegladarki, ale nadal ‘zlecic’ wykonanie wywolania funkcji po tym, jak przegladarka zakonczy swoj aktualny ‘run/render loop’)
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
zatem przed zrobieniem ‘click’, sprobuj recznie ustawic wartosci pol hidden o nazwach __EVENTTARGET i __EVENTARGUMENT odpowiednio na ‘searchTextBox’ oraz ‘’
ale wartości te nie sa widoczne.
Próbowałam ustawiać inaczej, poprzez set, ale pojawia się błąd:
undefined method `set’ for #Watir::Hidden:0x2aa88a0 (NoMethodError)
Generalnie na polutypu hidden niewiele metod mozna wywołać.
Witam ponownie.
odgrzebuję temat ponieważ chciałabym zrozumieć dlaczego wystąpił taki problem.
Dlaczego gdy wyszukuję manualnie autopostback w polu wyszukiwania działa poprawnie, a gdy robię to samo za pomocą Watir nie działa.
Jak robi to Watir?
Wydaje mi się, że przeładowuje stronę, ale dlaczego?
Czym różni się jego przeładowanie strony od mojego wpisania w pole jakiejś wartości i naciśnięcia F5?
Będę wdzięczna za wyjaśnienie przyczyny tego zjawiska.