Ich möchte HtmlUnit (v2.21) verwenden, um einige Suchergebnisseiten von Google zu erhalten. Dies erfordert, dass ich bei der Suche nach einer Person auf den Link "Personen auch gesucht" klicke (rechte Seite, siehe Beispiel-Link), wodurch JavaScript ausgelöst wird und der Inhalt der aktuellen Seite geändert wird. Aber das gibt mir eine JavaScript Wrapper Exception (siehe unten).JavaScript Ausnahme in HtmlUnit beim Klicken auf Google Ergebnisseite
klickbare Beispiel Link: https://www.google.de/search?ie=UTF-8&safe=off&q=nicki+minaj
Einfache Testcase mit Fehlern:
String url = "https://www.google.de/search?ie=UTF-8&safe=off&q=nicki+minaj";
WebClient client = new WebClient(BrowserVersion.BEST_SUPPORTED);
HtmlPage page = client.getPage(url);
HtmlElement link = page.getFirstByXPath("//a[@class='_Zjg']");
HtmlPage newPage = link.click(); //throws exception
this.storeResultFile(newPage.asXml(), "test");
client.close();
Ergebnis:
net.sourceforge.htmlunit.corejs.javascript.WrappedException: Wrapped java.lang.NullPointerException
at net.sourceforge.htmlunit.corejs.javascript.Context.throwAsScriptRuntimeEx(Context.java:2053)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:947)
at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.processPostponedActions(JavaScriptEngine.java:1012)
at com.gargoylesoftware.htmlunit.html.DomElement.click(DomElement.java:799)
at com.gargoylesoftware.htmlunit.html.DomElement.click(DomElement.java:742)
at com.gargoylesoftware.htmlunit.html.DomElement.click(DomElement.java:689)
ich die xml der "Seite" Objekt gespeichert und sorgte dafür, dass die XPath Ausdruck ist gültig und hat Ergebnisse.
Hat jemand irgendwelche Ideen?