0

我想在下面的 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();
4

3 回答 3

0

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

对每个列表元素应用一个 CSS 类,或者向容器询问其元素的数量。

于 2013-12-20T21:07:33.373 回答
0

尝试做

WebElement temp = driver.findElement(By.classname("slides-8"));
List<WebElement> list = temp.findElement(By.xpath(".//li"));
System.out.println(list.size());
于 2013-12-20T21:08:36.393 回答
0

你也可以尝试使用cssSelectors

List<WebElement> list = driver.findElements(By.cssSelector(".slides-8 > li"));
int length = list.size();
于 2013-12-21T04:06:53.157 回答