You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium Java单for循环同时操作两个等长List<WebElement>的实现

实现代码

因为你已经确认两个List<WebElement>长度相同,直接使用下标遍历的for循环即可配对获取对应位置的元素:

List<WebElement> one = driver.findElements(By.cssSelector("div[id='divdiscountcheckbox'] input[type='checkbox']")); 
List<WebElement> two = driver.findElements(By.cssSelector("div[id='divdiscountcheckbox'] em")); 

// 可选:提前校验长度避免下标越界
if (one.size() != two.size()) {
    throw new RuntimeException("两个列表长度不一致,无法配对");
}

// 单次循环同时获取两个列表对应元素的属性
for (int i = 0; i < one.size(); i++) {
    boolean isChecked = one.get(i).isSelected();
    String text = two.get(i).getText();
    // 这里替换成你自己的业务逻辑
    System.out.printf("复选框状态:%b,对应文本:%s%n", isChecked, text);
}

说明

  • 增强for循环(for-each)只能遍历单个集合,无法直接同步两个集合的遍历进度,因此改用基于下标的普通for循环即可满足需求
  • 提前添加长度校验可以避免后续页面DOM发生变化导致两个列表长度不一致时抛出的IndexOutOfBoundsException异常,提升代码健壮性

内容的提问来源于stack exchange,提问作者Ramnath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:18:01