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

如何在Java版Selenium中创建列表遍历打印及提取指定日期文本

在Java环境下用Selenium处理列表迭代与日期提取

一、创建元素列表并迭代打印数据

要实现这个需求,核心是用Selenium的findElements()方法获取目标元素的集合(返回List<WebElement>),之后通过循环遍历这个集合就能逐个操作元素了。

给你写个完整的示例代码,你可以直接参考:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.List;

public class SeleniumListIteration {
    public static void main(String[] args) {
        // 配置ChromeDriver路径,记得换成你本地的实际路径
        System.setProperty("webdriver.chrome.driver", "path/to/your/chromedriver");
        
        WebDriver driver = new ChromeDriver();
        driver.get("你的目标页面URL");
        
        // 定位所有encounter项的元素列表
        List<WebElement> encounterItems = driver.findElements(By.cssSelector(".encounter-list .item"));
        
        // 迭代列表并打印每个项的文本内容
        System.out.println("所有Encounter条目内容:");
        // 普通for循环写法
        for (int i = 0; i < encounterItems.size(); i++) {
            System.out.println(encounterItems.get(i).getText());
        }
        
        // 如果你用Java 8及以上版本,也可以用更简洁的forEach写法
        // encounterItems.forEach(item -> System.out.println(item.getText()));
        
        // 别忘了关闭浏览器
        driver.quit();
    }
}

这里要注意findElements()和findElement()的区别:前者返回匹配到的所有元素的列表,后者只返回第一个匹配的元素,可别搞混了。

二、提取并打印MM/DD/YYYY格式的日期

根据你提供的HTML结构,日期都在带有link-text类的<span>标签里。咱们可以先定位这些span元素,再提取文本,还可以加个正则校验确保格式正确。

示例代码如下:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.List;
import java.util.regex.Pattern;

public class SeleniumDateExtractor {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "path/to/your/chromedriver");
        WebDriver driver = new ChromeDriver();
        driver.get("你的目标页面URL");
        
        // 定义匹配MM/DD/YYYY格式的正则表达式
        Pattern validDatePattern = Pattern.compile("\\d{2}/\\d{2}/\\d{4}");
        
        // 定位所有包含日期的span元素
        List<WebElement> dateElements = driver.findElements(By.cssSelector(".encounter-list .link-text"));
        
        System.out.println("提取到的符合格式的日期:");
        for (WebElement dateElement : dateElements) {
            String dateText = dateElement.getText().trim();
            // 校验日期格式,确保只打印符合要求的内容
            if (validDatePattern.matcher(dateText).matches()) {
                System.out.println(dateText);
            }
        }
        
        driver.quit();
    }
}

额外小提示

如果你的页面是动态加载的(比如日期列表需要等待一会儿才会显示),记得添加等待逻辑,避免因为元素未加载完成导致获取空列表:

import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
import java.time.Duration;

// 在获取元素列表前,先等待10秒,直到元素加载完成
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector(".encounter-list .link-text")));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:36:32