使用HtmlUnit转到下一个aspx页面

时间:2017-04-20 05:34:57

标签: java asp.net postback htmlunit dopostback

我尝试使用 HtmlUnit (Java)解析 aspx 页面。在每个页面的底部,有一些标签可以导航到下一页/上一页。在每个页面中,只有11个页面编号可见,另外一个页面编号直接进入最后一页。

我的问题是,即使我点击第11页,HtmlPage也无法加载包含下11个页码的列表......所以我无法解析例如第12页的页面。

这是WebClient的初始化:

WebClient webClient = new WebClient(BrowserVersion.CHROME, PROXY_HOST, PROXY_PORT);
webClient.getOptions().setTimeout(12000);
webClient.waitForBackgroundJavaScript(60000);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setUseInsecureSSL(true);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getCookieManager().setCookiesEnabled(true);

这是我用来点击锚点转到下一页的代码:

HtmlPage rootPage = webClient.getPage(url);
HtmlAnchor a = rootPage.getAnchorByHref(String.format("javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridViewAlbo','Page$%d')", page));
HtmlPage requestedPage = a.click();

Screenshot here

1 个答案:

答案 0 :(得分:0)

我最终使用了PhantomJS并设法解析了所有页面。