Selenium-java-(Excel-元素管理篇)
在selenium进行自动化测试时,对元素剥离可以方便对代码的维护。
我们可以使用到excel文件进行对元素的管理。
首先我们需要在maven项目pom中导入poi解析excel的jar包。
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
这里是我的excel文件是这样编写管理的:
有了Excel文件之后,需要做的只需把元素的列表解析封存即可。
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* 提供Excel各种方法
* @Author taoxu
*/
public class Excel {
private String file;
public Workbook workbook;
private InputStream input = null;
public Excel(String file) {
this.file = file;
ClassLoader classLoader = Excel.class.getClassLoader();
URL resource = classLoader.getResource(file);
String path = resource.getPath();
try {
input = new FileInputStream(path);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//获得一个工作簿对象
try {
workbook = new XSSFWorkbook(input);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 提供获取表的方法
* @param i 第几个表
* @return 返回一个表对象
*/
public Sheet getSheet(int i){
Sheet sheet = workbook.getSheetAt(i);
return sheet;
}
/**
* 提供退出方法
*/
public void close(){
try {
input.close();
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
/**
* 提供获得元素的方法
* @return 返回一个元素集
*/
private List<String> setEle() {
List<String> eles = new ArrayList();
Sheet sheet = getSheet(1);
//获得表中行的迭代器
Iterator<Row> rows = sheet.rowIterator();
while (rows.hasNext()){
Row row = rows.next();
Cell cell = row.getCell(1);
//获得每一行的第二列
String cel = cell.getStringCellValue().toString();
eles.add(cel);
}
return eles;
}
/**
* 提供调用获取的元素集
* @return 返回一个元素集
*/
public List<String> getEle(){
return this.setEle();
}
}
这样我们就封装成功了,使用的时候传入一个excel文件即可。
Excel excel = new Excel("yuansu.xlsx");
List<String> eles = excel.getEle();
excel.close();