列表项的无序列表号

时间:2013-12-20 21:03:58

标签: list numbers selenium-webdriver unordered

我想在下面的html中找到lis项目(li)的数量:

<div class="li-control-block">
    <div class="inner">
        <a class="scroll-left" href="?slideId=7">
            <img width="59" height="30" alt="btn-hero-promo-slider-left" src="/c/images/btn-hero-promo-slider-left.png">
        </a>
        <ul class="slides-8">
            <li class="first">
                <a href="#">1</a>
            </li>
            <li class="">
                <a href="#">2</a>
            </li>
            <li class="">
                <a href="#">3</a>
            </li>
            <li class="">
                <a href="#">4</a>
            </li>
            <li class="">
                <a href="#">5</a>
            </li>
            <li class="">
                <a href="#">6</a>
            </li>
            <li class="">
                <a href="#">7</a>
            </li>
            <li class="last on">
        </ul>
            <a class="scroll-right" href="?slideId=1">
    </div>
</div>

我已尝试过下面的代码但是回复了“12345678”,这给了我1的大小。

那么如何才能让大小等于8?

List<WebElement> list=null;

    list = driver.findElements(By.cssSelector(".slides-8"));
    int length = list.size();

3 个答案:

答案 0 :(得分:0)

您的示例按预期工作;您的代码请求具有“slides-8”类的元素数,这是列表容器。然后你要问有多少元素,它就是一个 - 只有一个容器。

将CSS类应用于每个列表元素,或者向容器请求其元素的计数。

答案 1 :(得分:0)

尝试

WebElement temp = driver.findElement(By.classname("slides-8"));
List<WebElement> list = temp.findElement(By.xpath(".//li"));
System.out.println(list.size());

答案 2 :(得分:0)

您也可以尝试使用cssSelectors

List<WebElement> list = driver.findElements(By.cssSelector(".slides-8 > li"));
int length = list.size();