Selenium 简明教程
Selenium WebDriver - CSV Data File
Selenium Webdriver 可用于与 .csv 数据文件进行交互。通常,在自动化测试中,大量数据通过 .csv 文件进行传递,以正常支持数据驱动框架。.csv 文件看起来类似于一个 Excel 文件,文件扩展名为 .csv。
Java 提供了几个类和方法来使用 OpenCSV 库对 .csv 文件执行读取和写入数据操作。OpenCSV 具有两个最重要的类 - CSVReader 和 CSVWriter,用于对 .csv 文件执行读取和写入操作。
How to Install the OpenCSV?
Step 1 − 从链接 OpenCSV 将 OpenCSV 依赖关系添加到 pom.xml 文件。
Step 2 − 保存包含所有依赖关系的 pom.xml 并更新 Maven 项目。
Read all Values From a CSV
让我们以名为 Details1.csv 文件的 .csv 为例,其中我们将读取整个 .csv 文件,并使用 CSVReader 类及其 readNext() 方法检索所有值。
Please Note − 将 Details1.csv 文件放置在项目中的 Resources 文件夹内,如下图所示。
Example
package org.example;
import com.opencsv.CSVReader;
import com.opencsv.exceptions.CsvValidationException;
import java.io.FileReader;
import java.io.IOException;
public class CSVRead {
public static void main(String[] args) throws InterruptedException,
IOException, CsvValidationException {
// object of CSVReader class
CSVReader r = new CSVReader(new FileReader("./Resources/Details1.CSV"));
// store csv data in string array
String [] csvValues;
// iterate through csv till the end of the values
while ((csvValues = r.readNext())!= null){
// iterate through rows
for (String csvValue : csvValues){
System.out.println(csvValue);
}
}
}
}
添加到 pom.xml 的依赖关系。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SeleniumJava</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.11.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.opencsv/opencsv -->
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.9</version>
</dependency>
</dependencies>
</project>
Name
Street
Ram
Street 12
Rohan
Street 110
Process finished with exit code 0
在上面的示例中,我们读取了整个 .csv 文件,并在控制台中获取了所有值。
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。
Write and Read Values in a CSV
让我们再举一个示例,我们将在项目中的 Resources 文件夹下创建名为 Details2.csv 的 .csv 文件,并使用 CSVWriter 类及其方法 writeNext() 或 writeAll(),以及 flush() 来写入一些值。最后,使用 CSVReader 类及其 readNext() 方法读取这些值。
Example
package org.example;
import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
import com.opencsv.exceptions.CsvValidationException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class CSVReadWrite {
public static void main(String[] args) throws InterruptedException,
IOException, CsvValidationException {
// object of CSVWriter class
CSVWriter w = new CSVWriter(new FileWriter("./Resources/Details2.CSV"));
// stores values in csv
String [] rows1 = {"Name", "Street"};
String [] rows2 = {"Ram", "Street 12"};
String [] rows3 = {"Rohan", "Street 110"};
// add values to be written to list
List<String[]> write = new ArrayList<>();
write.add(rows1);
write.add(rows2);
write.add(rows3);
// write and flush all values
w.writeAll(write);
w.flush();
CSVReader r = new CSVReader(new FileReader("./Resources/Details2.CSV"));
// store csv data in string array
String [] csvValues;
// iterate through csv till the end of the values
while ((csvValues = r.readNext())!= null){
// iterate through rows
for (String csvValue : csvValues){
System.out.println(csvValue);
}
}
}
}
添加到 pom.xml 的依赖关系。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SeleniumJava</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.11.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.opencsv/opencsv -->
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.9</version>
</dependency>
</dependencies>
</project>
Name
Street
Ram
Street 12
Rohan
Street 110
Process finished with exit code 0
在上面的示例中,我们在项目中的 Resources 文件夹下创建了一个名为 Details2.csv 的 .csv 文件,并在其中写入了一些值。然后,我们读取了所有这些值,并最终在控制台中获取了这些值。
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。
此外,会在项目目录中创建名为 Details2.csv 的 .csv 文件。单击此文件后,我们会获取通过上述代码写入的值。