Intendo creare un'applicazione Android che esegua un accesso headless a un sito Web e quindi ritrae alcuni contenuti dalla pagina successiva mantenendo la sessione di accesso.Selendroid come raschiatore web
Per prima cosa ho utilizzato HtmlUnit in un normale progetto Java e ha funzionato perfettamente. Ma in seguito ho scoperto che HtmlUnit non è compatibile con Android.
Quindi ho provato la libreria JSoup inviando la richiesta "POST" HTTP al modulo di accesso. Ma la pagina risultante non viene caricata completamente poiché JSoup non supporterà JavaScript.
Mi è stato quindi suggerito di dare un'occhiata a Selendroid che in realtà è un framework di automazione di test di Android. Ma quello di cui ho realmente bisogno è un parser Html che supporti sia JavaScript che Android. Trovo che Selendroid sia piuttosto difficile da capire e non riesco nemmeno a capire quale dependencies utilizzare.
- selendroid-client
- selendroid-alone
- selendroid server
Con Selenium WebDriver, il codice sarebbe semplice come il seguente. Ma qualcuno può mostrarmi un esempio di codice simile per Selendroid?
WebDriver driver = new FirefoxDriver();
driver.get("https://mail.google.com/");
driver.findElement(By.id("email")).sendKeys(myEmail);
driver.findElement(By.id("pass")).sendKeys(pass);
// Click on 'Sign In' button
driver.findElement(By.id("signIn")).click();
E anche,
- Cosa dipendenze da aggiungere al mio file Gradle.Build?
- Quali librerie Selendroid da importare?
Questa soluzione funziona ma quando provo ad implementarla su un sito web con più reindirizzamenti, fallisce anche se confronto gli URL, i reindirizzamenti prendono la pagina e attraverso lo stesso url, ho usato contatori ma non riesco a capire quando esattamente la pagina è completamente caricata. –