2015-05-15 16 views
5

Sto facendo ricerca e sviluppo su pochi siti Web di terze parti sconosciuti per ottenere il contenuto della pagina utilizzando il selenio.Come verificare con Selenium WebDriver se un sito utilizza Ajax?

Come faccio a sapere se il sito Web è basato su Ajax o non basato su Ajax. Non conosco alcun dato all'interno del sito Web sconosciuto da verificare usando l'id o il nome del tag, quindi come dovrei controllarlo basato su Ajax o meno.

+0

si prega di leggere http://stackoverflow.com/help/how-to-ask e fornire maggiori informazioni su ciò che si è provato e ciò che non ha funzionato – Dude

+2

In realtà, questo è un problema interessante. – alecxe

+1

Cosa intendi esattamente con "Ajax Based", se esistono alcune chiamate Ajax o se si tratta di un'applicazione Simple Page? per esempio (Angular JS) Il problema è che ci sono molti approcci usando ajax. è la barriera principale secondo me. non c'è un modello .. –

risposta

1

Se fossi in te, vorrei configurare un proxy e instradare tutto il traffico dello WebDriver. Nella delega, per ciascuna richiesta vorrei analizzare le intestazioni di richiesta e potete trovare intestazione

X-Requested-With = XMLHttpRequest 

Reference

Se si dispone di questo, si può (con buona dose di fiducia) dire che hai avuto Ajax invocato . Ci possono essere alcuni casi d'angolo che ti mancheranno, ma questo dovrebbe farti la maggior parte di loro.

In ogni caso, è necessario considerare che le chiamate Ajax potrebbero non essere eseguite al caricamento della pagina, potrebbe richiedere l'interazione dell'utente per attivare tali chiamate.

Si può cercare di affrontare il problema utilizzando il metodo WebDrivers getPageSource() e applicare un metodo per l'uscita in cerca di modelli come $.get( e $.post( e $.ajax( e tutti gli altri quelli che si possono trovare.

Potresti anche essere interessato a this answer sull'impostazione del proxy.

Problemi correlati