2010-05-07 5 views
0

Я использую HtmlUnit нажать на HtmlElement, запускающего Javascript действия:Как заставить HtmlUnit сохранить страницу?

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

Элемент:

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

страница вернулась очень похожа на страницу, содержащую этот элемент: тот же URL, в основном тот же HTML, но есть некоторые незначительные отличия в HTML, а HtmlUnit не сохраняет новую страницу. Я использую HttpAnalyzer, чтобы обнюхать трафик, и я вижу, что Webclient правильно обрабатывает JS и отправляет правильный запрос. Ответ также верен, но когда я сбрасываю содержимое файла currentPage в файл, я вижу, что фактическая страница не изменилась. Как я могу это исправить?

ответ

0

У меня была та же проблема. В моем случае это было:

<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> 

Решаю это так:

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

webClient.setJavaScriptEnabled(false); 
page1 = htmlElement.click(); 
webClient.setJavaScriptEnabled(true); 
Смежные вопросы