2010-05-07 4 views
0

J'utilise HtmlUnit de cliquer sur un HtmlElement qui déclenche une action Javascript:Comment forcer HtmlUnit à sauver la page?

currentPage = ((HtmlElement) currentPage.getByXPath("//*[contains(@onclick, 'check();')]").get(0)).click(); 

L'élément est:

<a href="#" onclick="check(); return false;"> 

La page retournée est tout à fait similaire à la page, contenant cet élément: même URL, principalement le même HTML, mais il y a quelques différences mineures dans le HTML et HtmlUnit ne sauvegarde pas la nouvelle page. J'utilise HttpAnalyzer pour renifler le trafic et je vois que le Webclient gère correctement JS et envoie la bonne requête. La réponse est également correcte, mais quand je jette le contenu du currentPage dans un fichier, je vois que la page réelle n'a pas changé. Comment puis-je le réparer?

Répondre

0

J'ai eu le même problème. Dans mon cas, il était:

<div id="loginButton" class="buttonOuter" onclick="this.childNodes[1].click();"> 
<div class="buttonInner"> 
<a href="#">Login</a> 
</div> 
<input class="loginHiddenButton" type="submit" onclick="submit_proc(false,'')"> 
</div> 

je résous cette façon:

HtmlPage page1 = webClient.getPage("myURI"); 
HtmlElement htmlElement = (HtmlElement) page1.getByXPath("loginHiddenButtonXPATH").get(0); 

webClient.setJavaScriptEnabled(false); 
page1 = htmlElement.click(); 
webClient.setJavaScriptEnabled(true); 
Questions connexes