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

Selenium(Java)读取CSV文件实现电商搜索框自动化测试

Selenium测试集成CSV读取搜索词实现方案

你这个场景CSV结构非常简单(单行单列、无特殊字符),不需要引入第三方CSV解析依赖,直接用JDK自带的IO能力就能实现,集成步骤如下:

  • 前置准备:将存搜索词的CSV文件放到测试工程的资源目录下(比如src/test/resources/searchKey.csv),确认文件内无多余空行、首尾无空格,第一行第一列就是目标搜索词novel。
  • 实现读取逻辑:写极简读取方法直接取CSV第一行第一列的内容,读取时指定UTF-8编码避免乱码。
  • 替换原有硬编码:把原来写死在sendKeys里的"novel"替换成从CSV读取到的变量即可。

完整修改后的测试代码

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.nio.file.Files;
import java.nio.file.Paths;

public class SearchTest {
    private ChromeDriver driver;

    // 读取单值CSV的工具方法
    private String getSearchKeywordFromCsv(String csvPath) throws Exception {
        // 读取CSV所有内容,去除首尾空白、换行后返回
        return new String(Files.readAllBytes(Paths.get(csvPath)), "UTF-8").trim();
    }

    public void TestSecond() throws Exception {
        // 路径替换为你本地实际的CSV存放路径
        String searchKeyword = getSearchKeywordFromCsv("src/test/resources/searchKey.csv");

        WebElement searchBar = driver.findElement(By.id("search-input"));
        searchBar.click();
        searchBar.sendKeys(searchKeyword);
        driver.findElement(By.className("button-search")).click();
    }
}

补充说明

  • 如果工程用的是JDK11及以上版本,读取方法可以简化为Files.readString(Paths.get(csvPath), StandardCharsets.UTF_8).trim();,代码更简洁。
  • 如果后续要扩展为多行多列存储多组测试搜索词,再引入OpenCSV等第三方解析包即可,当前单值场景没必要加额外依赖。
  • 记得处理IO相关异常,上面示例是直接在方法上抛出异常,你也可以根据自己的测试框架异常处理逻辑捕获后打印日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:54:27