2011-06-28 16 views
6

Proszę opisać mi testy Ajax z selenem RC. Podobnie jak w przypadku elementu Ajax nie odzwierciedlają one źródła widoku, ale za pomocą firebuga możemy zobaczyć zmiany w kodzie źródłowym HTML.Selen: Ajax Testowanie

Istnieją dwie metody związane z nią badania Ajax ..

1-Metoda „waitForCondition (java.lang.String skrypt, java.lang.String Timeout), aby zapewnić skrypt musimy utworzyć java scenariusz własny, czy też powinna być taka sama Ajax skrypt/java script obecne na stronie internetowej.

Proszę mnie poprawić jeśli się mylę na poniżej punktu ..

2-metoda „waitForElemantPresent (Locator)” Sprawdzamy element w firebugu i sprawdzamy to samo w tej metodzie jest self waitForElemantPresent (Locator).

Daj mi znać, jeśli cokolwiek innego brakuje mi testowania aplikacji Ajax.

+1

Szukasz sposobów oczekiwania na załadowanie elementów Ajax? –

+0

Tak AJ, potrzebuję wyjaśnień na temat mojej pierwszej kwestii i chcę wiedzieć, czy jest jakakolwiek inna metoda testowania zawartości Ajax przy użyciu Selenium1 lub Selenium2. Pomóż mi w tym. Z góry dziękuję... – smriti

Odpowiedz

6

mam pomóc w tej sprawie z jednego artykułu i przy pomocy @Hannibal

http://agilesoftwaretesting.com/?p=111

JQuery: „jQuery.active”

Prototype: „Ajax.activeRequestCount”

Dojo „dojo.io.XMLHTTPTransport.inFlight.length”

Więc jeśli jest połączenie Ajax, możemy użyć drugiej opcji.

selenium.waitForCondition(
     "selenium.browserbot.getCurrentWindow().jQuery.active == 0", 
     timeout); 
+0

Tak, to jest lepszy sposób. +1 –

1

Aby odpowiedzieć na twój pierwszy punkt, tak waitForCondition(javascript,timeout) uruchomi javascript, dopóki nie zwróci prawdziwej wartości LUB, gdy upłynie limit czasu. Powinieneś rzucić okiem na dokumentację api, ponieważ musisz użyć browserbot, aby uruchomić skrypt w oknie aplikacji. Odsyłacz do dokumentacji interfejsu API to here

W Selenie 1, jednym ze sposobów obsługi warunków Ajax jest tworzenie niestandardowych funkcji, które będą czekać do momentu spełnienia warunku lub do momentu przekroczenia limitu czasu. O ile normalny obiekt Selenium.isElementPresent natychmiast zawiedzie, jeśli element nie jest obecny, funkcja niestandardowa będzie czekać na więcej czasu (czas ładowania się Ajax), zanim się nie powiedzie. Jako przykład możesz odwołać się do poniższej niestandardowej metody dla isElementPresent. Jest to napisane w języku JAVA, powinieneś być w stanie używać tej samej logiki w używanym języku programowania.

public boolean AjaxIsElementPresent(String elementToLookFor, int timeOutValueInSeconds){ 

int timer=1; 
while(timer<=timeOutValue){ 
if(selenium.isElementPresent(locator)) 
    return true; 
else 
    Thread.sleep(1000); 
    } 
return false; 

}

Metoda ta zwraca wartość logiczną false element nie występuje, nawet po upływie określonego wartość_limitu_czasu. Jeśli znajdzie element w ramach timeoutvalue, zwróci true.

Widziałem niektóre wbudowane funkcje obsługi AjaxCondition w Selenium 2. Ale nie użyłem go. Można odwołać się do Selen kodu bazowego 2

+0

Wielkie dzięki za pomoc @AJ, napisałem na ten temat odpowiedź, spróbuj i napisz komentarze ... Jeszcze raz dziękuję! – smriti