用Jsoup在div里面的Cound div

时间:2017-05-26 21:47:28

标签: html automation jsoup

我有一个页面,可以找到多个状态。我想在页面上计算所有serviceStatus-OK和serviceStatus-DOWN div。不幸的是我无法修改页面,我需要验证所有服务是否正常运行。我的想法是,加载页面,统计所有OK状态。如果5服务有5好,我们很好。如果有任何DOWN,我们就不行了。

Any ideas?

Source code:

    <span id="content">
                    <div class="status">
                        <div class="serviceName">
                            Some name <br />
                            http://blablaservice1
                        </div>
                        <div class="serviceStatus-OK">
                            OK
                        </div>
                    </div>

                    <div class="status">
                        <div class="serviceName">
                            Some other name <br />
                            http://blablaservice2
                        </div>
                        <div class="serviceStatus-DOWN">
                            DOWN
                        </div>
                    </div>

My code:
Elements services = doc.select("span#conent");
        Element content = doc.getElementById("content");
        Elements servicesOks = content.getElementsByTag("status");

        int upCounter = 0;
        int downCounter = 0;
        for (Element y : servicesOks) {
            if (y.hasClass("status-OK")) {
                upCounter++;
            }
        }

        for (Element y : servicesOks) {
            if (y.hasAttr("status-DOWN")) {
                downCounter++;
            }
        }


        System.out.println("OK Systems: " + upCounter);
        System.out.println("DOWN Systems: " + upCounter);

My output is:

OK Systems: 0
DOWN Systems: 0

1 个答案:

答案 0 :(得分:1)

你可以找到这样的好坏数量:

Document doc = Jsoup.parse(input);
Elements OK = doc.select(".serviceStatus-OK");
Elements down = doc.select(".serviceStatus-DOWN");
System.out.println("OK - " + OK.size());
System.out.println("DOWN - " + down.size());

查找名称为serviceStatus-OKserviceStatus-DOWN的所有元素,然后计算每种项目的数量(elemnts只是list)。