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

Java Selenium如何用CSV两列数据循环填充页面双元素?

问题

有一个包含两列的.csv文件,需要通过Java Selenium导航至页面,将CSV第一列数据输入页面Element1,第二列数据输入Element2,随后点击Element3和Element4,循环处理下一行直至所有数据处理完成。

目前已完成CSV读取并能打印数据,但无法实现“第一列数据对应Element1、第二列数据对应Element2”的赋值操作。现有CSV读取代码如下:

Scanner scan = new Scanner(new File("FilePathway"));
ArrayList<String[]> records = new ArrayList<String[]>();
String[] record = new String[2];
while (scan.hasNext()) {
    record = scan.nextLine().split(",");
    records.add(record);
}
// now records has your records.
// here is a way to loop through the records (process)
for (String[] temp : records) {
    for (String temp1 : temp) {
        System.out.print(temp1 + " ");
    }
    System.out.print("\n");
}

若为单列数据填充单个元素,以下代码可行,但无法适配两列对应两个元素的场景:

for (String[] temp : records) {
    for (String temp1 : temp) {
        driver.findElement(By.id("Element1")).sendKeys(temp1);
        driver.findElement(By.id("Element2")).click();
        driver.findElement(By.id("Element3")).click();
        driver.findElement(By.id("Element4")).click();
    }
解决方案

你不需要嵌套遍历每行的元素,直接通过数组索引获取每行的两列数据即可:

修改后的处理循环代码:

for (String[] temp : records) {
    // 取当前行第一列数据输入Element1
    driver.findElement(By.id("Element1")).sendKeys(temp[0]);
    // 取当前行第二列数据输入Element2
    driver.findElement(By.id("Element2")).sendKeys(temp[1]);
    
    // 执行后续点击操作
    driver.findElement(By.id("Element3")).click();
    driver.findElement(By.id("Element4")).click();
    
    // 可选:如果需要重置输入框状态,可添加清空操作
    // driver.findElement(By.id("Element1")).clear();
    // driver.findElement(By.id("Element2")).clear();
}

说明

  • 原代码中的嵌套for (String temp1 : temp)会遍历当前行的每个元素,导致一行数据被处理两次(分别给Element1输入两次,不符合需求)。
  • 直接使用temp[0]和temp[1]可以精准获取每行的第一、第二列数据,对应赋值给Element1和Element2,一次循环处理完整一行数据。
  • 如果CSV中存在包含逗号的内容,split(",")会导致数据拆分错误,这种情况建议使用专业的CSV解析库(如OpenCSV)来处理,但当前场景下若数据格式规范,现有拆分方式可正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:20:17