2015-02-15 11 views
6

Sto testando un'applicazione per una sola pagina utilizzando selenio. Voglio testare per assicurarmi che l'app torni al server solo quando è necessario.Rilevamento di richieste Ajax nel selenio

C'è un modo nel selenio per affermare che nessuna richiesta di ajax si è verificata o che si è verificata una richiesta di ajax ed esaminare l'URL Ajax?

Lo sto testando al momento cercando la presenza di un div di caricamento, ma questo non è quello che in realtà voglio testare e non è molto stabile durante il test su una macchina locale come la richiesta a volte supera l'esecuzione del test.

risposta

0

Non esiste un modo diretto presente in WebDriver per rilevare la richiesta ajax. Vedi questo problema. https://code.google.com/p/selenium/issues/detail?id=141

Ma posso pensare a un lavoro. Chiedi ai tuoi sviluppatori di mettere un div nascosto nel sorgente della pagina. Ogni volta che fanno una chiamata ajax, chiedi loro di aggiornare questo div con una bandiera.

Con WebDriver, puoi facilmente leggere la bandiera di questo Div e mettere la tua affermazione.

È anche possibile utilizzare le librerie WebClient incorporate presenti in C# o java per ottenere questo risultato.

Questo approccio è descritto in dettaglio in questo blog. http://www.ninthavenue.com.au/how-to-get-the-http-status-code-in-selenium-webdriver

Se si desidera verificare se è presente una richiesta di ajax, è possibile utilizzare la classe javascriptexecutor in webDriver. vedere il codice qui sotto

IJavaScriptExecutor jsScript = driver as IJavaScriptExecutor; 
if(!(Boolean)jsScript.ExecuteScript("return jQuery.active == 0")) 
retrun "ajax request occured"; 
+0

Un altro approccio è quello di ottenere richiesta HTTP e la risposta intestazioni tramite un proxy incorporato .. Visualizza questo link http://www.supermind.org/blog/968/howto-collect-webdriver-http -request-and-response-headers – joinsaad

+0

Questo è un peccato che non lo supporti meglio, ma in realtà non voglio mettere DOM solo perché voglio testarlo. –

Problemi correlati