如何在Htmlunit中抓取Javascript模板?

时间:2017-01-10 03:37:51

标签: javascript handlebars.js htmlunit

如何刮掉#handler.dars .js' htmlunit 2.21中的javascript模板?我尝试执行此操作,但显示的信息为:

  

'文本/ X-JavaScript的模板'不是javascript。

并且脚本不会执行。我执行命令page.asXml()

输出文字没什么。你知道在Htmlunit执行javascript模板的依赖吗?请帮忙。

1 个答案:

答案 0 :(得分:1)

本守则

  • HtmlUnit配置

    webClient = new WebClient(BrowserVersion.CHROME);
    webClient.getBrowserVersion().setBrowserLanguage("ko-kr");
    
    ConfirmHandler okHandler = new ConfirmHandler() {
        @Override
        public boolean handleConfirm(Page page, String message) {
            logger.info("[Confirm] " + message);
    
            return true;
      }
    };
    
    AlertHandler alertHandler = new AlertHandler() {
        @Override
        public void handleAlert(Page page, String message) {
            logger.info("[Alert] " + message);
        }
    };
    
    webClient.setRefreshHandler(new ImmediateRefreshHandler());
    webClient.getOptions().setGeolocationEnabled(true);
    webClient.getOptions().setRedirectEnabled(true);
    webClient.getOptions().setUseInsecureSSL(true);
    webClient.getOptions().setCssEnabled(false);
    webClient.getOptions().setJavaScriptEnabled(script);
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.getOptions().setTimeout(0);
    webClient.setAjaxController(new NicelyResynchronizingAjaxController());
    webClient.setConfirmHandler(okHandler);
    webClient.setAlertHandler(alertHandler);
    
  • 页面移动代码

        page = webClient.getPage("https://promotions.expediapartnercentral.com/promotions/manageroomandrate.html?htid=" + siteIdx);
        webClient.waitForBackgroundJavaScript(1000);
    
  • page.asXml()repsonse为空(脚本未执行)