• 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().

  • 相关阅读:
    JVM
    事务
    Spring中AutowireMode(自动装配模型)
    ImportAware应用
    spring中几个比较重要的扩展点
    动态代理在Spring中的应用
    基于ImportSelector模拟简单的Aop
    正则表达式分组(Grouping)
    正则表达式断言(Assertions)
    一个JSON解析器
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/5931339.html
Copyright © 2020-2023  润新知