zoukankan      html  css  js  c++  java
  • HtmlUnit初探

    HtmlUnit是一个用java实现的浏览器,是一个无界面的浏览器(headless browser),跟phatomJS好像是同一类事物.

    HtmlUnit基于apache httpClient,而httpClient基于URLConnection和Socket,URLConnection基于Socket.所以它们最终都是基于Socket.

            WebClient webClient = new WebClient();
            // webClient.getOptions().setCssEnabled(false);
            webClient.getOptions().setJavaScriptEnabled(false);
            HtmlPage page = webClient.getPage("http://www.baidu.com");
            HtmlTextInput kw = (HtmlTextInput) page.getElementById("kw");
            //通过这个语句测试一下到底是什么类型
            System.out.println(kw.getClass());
            HtmlSubmitInput su = (HtmlSubmitInput) page.getElementById("su");
            kw.setValueAttribute("暗算");
            // method1
            page = su.click();
            // method2
            // page = (HtmlPage) webClient.getCurrentWindow().getEnclosedPage();
            System.out.println(page.asXml());
            webClient.close();

    如果不禁用js和css,程序会抛出各种异常以致无法继续运行.

    使用HtmlUnit可以运行js

    WebClient webclient = new WebClient();  
    HtmlPage htmlpage = webclient.getPage("you url");  
    htmlpage.executeJavaScript("the function name you want to execute"); 

    表单的填写除了使用HtmlTextInput#setValueAttribute(),还可以使用HtmlInput#type().

  • 相关阅读:
    Codeforces 735C:Tennis Championship(数学+贪心)
    HDU 5934:Bomb(强连通缩点)
    BZOJ-2743 采花
    BZOJ-1878 HH的项链
    BZOJ-1798 维护序列
    BZOJ-1911 特别行动队
    BZOJ-1010 玩具装箱
    BZOJ-1096 仓库建设
    BZOJ-1012 最大数
    ZOJ 3696 Alien's Organ(泊松定理,期望值)
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/5931339.html
Copyright © 2011-2022 走看看