首页 > 解决方案 > 获取 ul 中 li 元素的数量而不存储在列表中

问题描述

我有一个<ul>,其中有很多<li>,每个都包含一个锚标记。列表元素的 xpath 如下所示:

String xpath = "//*[@id='page']/section[8]/div/div/div[2]/div/ul/li[";

String part2 = "]/a";

我的任务包括单击每个链接,返回主页,然后单击另一个链接。

此时,我的网页包含 5 个这样的元素。要单击每个元素,我在 for 循环中重复以下操作:

driver.findElement(By.xpath(part1 + i + part2)).click();其次是driver.navigate().back();

问题是我已经硬编码了值 5。它可以是 6 其他天,或者可以有任意数量的链接。

我可以使用什么逻辑来检查 ul 的大小?问题是我不能使用 ajava.util.List预先存储链接。

标签: javaseleniumselenium-chromedriver

解决方案


你可以存储他们的计数吗?:)

int len = driver.findElements(By.xpath("//*[@id='page']/section[8]/div/div/div[2]/div/ul/li/a").size()

findElements将找到与定位器匹配的所有元素(注意复数),以列表的形式返回,您可以在其中获得大小(长度)。

所以现在你会知道循环的上限。


推荐阅读