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

  • 相关阅读:
    第5.3课.多输入之多线程和fork
    第5.2课多输入之select
    第5.1课,多输入之轮询
    第4课.编写通用的Makefile
    第3课.电子书框架
    2.3freetype矢量字体
    建立u-boot,内核的SI工程
    2.1/2.2字符的编码方式及显示
    1.0数码相框框架分析
    [数据结构]一些有意思题目(一)
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/5931339.html
Copyright © 2011-2022 走看看