htmlunit 入门--官网示例

官网:http://htmlunit.sourceforge.net/

HtmlUnit是一个“GUI程序的GUI-less浏览器”。它模拟HTML文档,并提供一个API,允许您调用页面,填写表单,点击链接等,就像您在“正常”浏览器中所做的一样。

它具有相当好的JavaScript支持(它不断改进),并且能够使用相当复杂的AJAX库来工作,根据所使用的配置模拟Chrome,Firefox或Internet Explorer。

它通常用于测试目的或从网站检索信息。

介绍

依赖性页面列出了你需要在你的classpath中所有罐子。

com.gargoylesoftware.htmlunit.WebClient类是主要的起点。这将模拟一个Web浏览器,并将用于执行所有的测试。

大多数单元测试将在像JUnit 这样的框架中完成,所以这里的所有示例都将假设我们正在使用它。

在第一个示例中,我们创建了Web客户端,并从HtmlUnit网站加载了主页。然后我们验证此页面是否具有正确的标题。请注意,getPage()可以根据返回的数据的内容类型返回不同类型的页面。在这种情况下,我们期待一种内容类型的text/html,所以我们将结果转换为一个com.gargoylesoftware.htmlunit.html.HtmlPage。

    @Test
    public void homePage() throws Exception {
        //实例化webClent 对象
        WebClient webClient = new WebClient();
        //获取页面
        HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
        //返回此页面的标题或如果指定的标题不是一个空字符串。
        System.out.println("获取的标题是: 与" + page.getTitleText());
        //获取网页中的内容,以XML方法返回
        //返回一个字符串表示XML文档的元素和所有它的孩子(递归)。是当前页面编码使用的字符集。
        String pageAsXml = page.asXml();
        //contains 包含
        System.out.println(pageAsXml.contains("<body class=\"composite\">"));
        //获取网页中的内容以文本方式返回
        //返回一个代表该元素的文本表示会对用户可见的如果这个页面是显示在一个web浏览器。例如,single-selection选择元素将返回当前选中的值为文本。

        String pageAsText = page.asText();
        //是否包含以下内容
        System.out.println(pageAsText.contains("Support for the HTTP and HTTPS protocols"));


    }

模仿一个特定的浏览器

通常你会想要模拟一个特定的浏览器。这通过将com.gargoylesoftware.htmlunit.BrowserVersion传递到WebClient构造函数来完成。为一些常见的浏览器提供常量,但您可以通过实例化BrowserVersion创建自己的特定版本。

    @Test
    public void homePage_Firefox() throws Exception {
        //实例化webClent 对象,并设定指定的浏览器
        WebClient webClient = new WebClient(BrowserVersion.FIREFOX_52);
        HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
        //返回此页面的标题或如果指定的标题不是一个空字符串。
        System.out.println("HtmlUnit - Welcome to HtmlUnit" + page.getTitleText());


    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值