HtmlUnit es un navegador web Java sin GUI(Graphic User Interface). Es decir, que es un navegador para abrir páginas web programaticamente, muy utilizado para testear webs, obtener información, crear robots, etc. HtmlUnit es usado por un montón de proyectos de software libre.
Para hacer una aplicación Java que abra una página web con este navegador lo haremos con Gradle. Aquí esta el fichero de configuración ‘build.gradle’:
apply plugin: 'java' repositories { jcenter() } dependencies { compile 'org.slf4j:slf4j-api:1.7.12' compile 'net.sourceforge.htmlunit:htmlunit:2.24' testCompile 'junit:junit:4.12' }
Una vez ya tenemos las dependencias ya podemos hacer uso del navegador en nuestra aplicación:
// Podemos decirle que navegador emular, procy, etc. WebClient webClient = new WebClient( BrowserVersion.CHROME ); // Configuramos opciones webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setCssEnabled(true); webClient.getOptions().setJavaScriptEnabled(true); // Cargamos página web HtmlPage page1 = webClient.getPage("http://www.google.com"); // Ahora podemos interactuar con la web DomElement e=page1.getElementById("ID del elemento"); System.out.println( e.asXml() ); // Esperamos 40 segundos y cerrramos el navegador Thread.sleep( 40*1000 ); System.out.println( "Closing browser" ); webClient.close();