Selenium WebDriver:有没有一种方法可以对动态列表中的项目具有超链接进行计数?

时间:2019-04-09 10:56:59

标签: selenium-webdriver

当状态被选中时(从下拉框中),我会动态显示位置列表。列表中的每个项目都是一个超链接,可打开另一个包含其他详细信息的页面。 如您在下面看到的html代码所示,未使用“选择”或“表”对列表进行标记。 在这种情况下,在Selenium中,我的理解是我将无法知道no的计数。选择状态时显示的位置数,因为实际上这不是列表。 我的理解正确吗?

(我可以在项目上使用linkText()。click(),并且可以正常工作。)

<div class="blk">
    <div class="smlhead">
          Places
    </div>
    <div id="divPlacesCont" class="sbarPrnt" style="height: 179.219px;">
    <div id="divPlaces" class="tilewrap sbarcont" style="height: 179px;">
        <div class="blksmlr smlhead sngline">
        <a href="#" onclick="javascript:mcSearch.placeSelected(this, '12');">hyd</a>
        </div>
        <div class="blksmlr smlhead sngline">
        <a href="#" onclick="javascript:mcSearch.placeSelected(this, '7');">Hyderabad</a>
        </div>
    </div>

    <div class="sbar" style="display: none;">
        <div class="sbarpos" style="height: 152.576px; top: 0px;"></div>
    </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

通过ID:divPlaces获取对WebElement的引用

WebElement element = driver.findElement(By.id("divPlaces"));

// find all links inside 
List<WebElements> list = element.findElements(By.xpath(".//a"));

现在显然您可以检查列表的大小,以查看有多少链接。

list.size();

然后使用列表中的元素进行任何操作。