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

  • 相关阅读:
    c++ 判断是元音还是辅音
    c++示例 计算器
    c++容器 算法 迭代
    获取 Django版本号的两种方式
    ImportError: No module named pytz
    Nginx配置proxy_pass转发的/路径问题
    VIM复制粘贴大全!
    SSL协议与数字证书原理
    分析支付宝客户端的插件机制
    PHP session的实现原理
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/5931339.html
Copyright © 2011-2022 走看看