java - 获取 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
预先存储链接。
解决方案
你可以存储他们的计数吗?:)
int len = driver.findElements(By.xpath("//*[@id='page']/section[8]/div/div/div[2]/div/ul/li/a").size()
findElements
将找到与定位器匹配的所有元素(注意复数),以列表的形式返回,您可以在其中获得大小(长度)。
所以现在你会知道循环的上限。
推荐阅读
- r - 对数值列求和并报告位于指定范围内的列总和的索引
- python - R(或Python)中的图像眩光抑制
- python - Tensorflow,通过空间索引从图像中收集
- discord - 如何为 github.io 网站获取自定义不和谐嵌入?
- coldfusion - 尝试对 Jira API 进行简单 REST 调用时连接失败
- r - 当 x 是离散变量而不切断条形底部时更改图形 y 轴的下限
- javascript - 收到新消息时如何刷新聊天屏幕?
- pandas - df['column1'] != df['column2'] 出现匹配的数字,为什么?
- swiftui - 如何在 SwiftUI 中拥有 2 个手势?
- typescript - 参数'props'隐式具有'any'类型-Typesript中的vuejs错误