我正在尝试废弃此页面https://plus.google.com/115016587855962294424/about。一切正常,但是当我尝试单击显示更多以加载更多评论时,这里没有任何反应是我的代码
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
page = webClient.getPage("https://plus.google.com/115016587855962294424/about");
assertEquals(200,page.getWebResponse().getStatusCode());
assertEquals("OK",page.getWebResponse().getStatusMessage());
System.out.println(page.getWebResponse().getStatusCode());
点击此处显示更多
HtmlSpan advancedSearchAn = (HtmlSpan) page.getFirstByXPath("//*[@id=\"115016587855962294424-about-page\"]/div/div[1]/div/div/div[2]/div[3]/span[1]");
page = advancedSearchAn.click();
但什么也没发生我什至尝试过
// webClient.waitForBackgroundJavaScript(10 * 1000);
// webClient.setAjaxController(new NicelyResynchronizingAjaxController());
// webClient.setAjaxController(new AjaxController(){
// @Override
// public boolean processSynchron(HtmlPage page, WebRequest request, boolean async)
// {
// return true;
// }
// });
有什么建议么 ?
更新:
*有人建议我通过子类 HttpWebConnection 修改传入的 JavaScript 代码并将 getResponse() 覆盖为: *
new WebConnectionWrapper(webClient) {
public WebResponse getResponse(WebRequest request) throws IOException {
// System.out.println("content");
WebResponse response = super.getResponse(request);
if (request.getUrl().toExternalForm().contains("https://plus.google.com/115016587855962294424/about")) {
String content = response.getContentAsString("UTF-8");
//change content -- what is need to be changed
System.out.println("content "+content);
WebResponseData data = new WebResponseData(content.getBytes("UTF-8"),
response.getStatusCode(), response.getStatusMessage(), response.getResponseHeaders());
response = new WebResponse(data, request, response.getLoadTime());
}
System.out.println("content "+response.getContentAsString());
return response;
}
关于如何准确完成以及需要修改什么的任何建议,我尝试了以下 API 的 htmlunit jsoup webharvest selenium