如何在selenium TestNG中使用dataprovider从xlsx表获取数据?

时间:2015-06-23 07:14:11

标签: selenium testng

有人可以使用Selenium中的数据提供程序向我提供如何从Excel工作表(最新的Excel文件格式)中检索数据的逻辑吗?

我主要是在数据提供者中寻找for循环逻辑。

1 个答案:

答案 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行)