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
相关产品推荐
相关产品推荐

