有人可以使用Selenium中的数据提供程序向我提供如何从Excel工作表(最新的Excel文件格式)中检索数据的逻辑吗?
我主要是在数据提供者中寻找for循环逻辑。
答案 0 :(得分:0)
基本上,TestNG Data Provider
是你创造的任何东西。
如果要读取xlsx文件,则需要创建一个读取excel行并返回数据集的类。
@DataProvider(name = "data")
public static Object[][] returnExcelSheetData()
throws BiffException, IOException
{
String absolutePath = filePath.concat("/").concat(fileName); //path to excel file
FileInputStream file = new FileInputStream(new File(absolutePath));
Workbook workbook = Workbook.getWorkbook(file);
Sheet worksheet = workbook.getSheet(sheetName); //sheet name
int ROWS = worksheet.getRows() - 1; //if headers are present - use -1
int COLS = worksheet.getColumns(); //read all columns
Object[][] dataset = new Object[ROWS][COLS];
for (int rowCount = 0; rowCount < ROWS; rowCount++) {
for (int colCount = 0; colCount < COLS; colCount++) {
dataset[rowCount][colCount] = worksheet.getCell(colCount,
rowCount + 1).getContents();
}
}
workbook.close();
file.close();
return dataset;
for循环遍历所有列和所有行并返回数据集。
如果您只使用1行数据和1行标题,DataProvider将传递数据进行测试。
如果使用2行数据,将为每行调用调用DataProvider
的方法(2行数据为2行)