如何存储所有WebElement的文本到列表并输出为逗号分隔的字符串
代码实现方案
1. 存储所有元素文本到独立List后打印
基础写法(兼容所有Java版本)
import java.util.ArrayList; import java.util.List; // 原有元素获取逻辑 List<WebElement> GroupList = driver.findElements(By.xpath("//*[Abc']")); List<String> textList = new ArrayList<>(); // 遍历元素提取文本存入列表 for (WebElement element : GroupList) { textList.add(element.getText()); } // 打印整个文本列表 logger.info(textList.toString());
Java 8+ 精简Stream写法
import java.util.List; import java.util.stream.Collectors; List<WebElement> GroupList = driver.findElements(By.xpath("//*[Abc']")); List<String> textList = GroupList.stream() .map(WebElement::getText) // 可选:添加过滤逻辑去掉空白文本 // .filter(text -> text != null && !text.trim().isEmpty()) .collect(Collectors.toList()); logger.info(textList.toString());
2. 输出逗号+空格分隔的格式化字符串
Java 8+ 最优写法(自动处理末尾无多余分隔符)
可直接基于上面拿到的textList生成:
String formattedResult = String.join(", ", textList); logger.info(formattedResult);
也可以直接从元素列表一步生成:
String formattedResult = GroupList.stream() .map(WebElement::getText) .collect(Collectors.joining(", ")); logger.info(formattedResult);
Java 8 以下版本兼容写法
StringBuilder sb = new StringBuilder(); for (int i = 0; i < textList.size(); i++) { sb.append(textList.get(i)); // 仅非末尾元素追加分隔符 if (i != textList.size() - 1) { sb.append(", "); } } String formattedResult = sb.toString(); logger.info(formattedResult);
内容的提问来源于stack exchange,提问作者Abdurehman Siddiqui
相关产品推荐
相关产品推荐

