How read Data from Excel for selenium java
To read data from an Excel file in Selenium with Java, the most commonly used library is Apache POI. Here's a basic step-by-step guide to help you get started:
✅ 1. Add Apache POI Dependency
If you're using Maven, add these dependencies in your pom.xml:
<dependencies>
<!-- Apache POI for Excel -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
</dependencies>
✅ 2. Create a Utility Class to Read Excel
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelUtils {
public static String getCellData(String filePath, String sheetName, int rowNum, int cellNum) {
String value = "";
try {
FileInputStream fis = new FileInputStream(new File(filePath));
Workbook workbook = new XSSFWorkbook(fis);
Sheet sheet = workbook.getSheet(sheetName);
Row row = sheet.getRow(rowNum);
Cell cell = row.getCell(cellNum);
value = cell.toString(); // You can handle different types here if needed
workbook.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return value;
}
}
✅ 3. Use ExcelUtils in Your Selenium Test
public class LoginTest {
public static void main(String[] args) {
String filePath = "C:\\TestData\\data.xlsx";
String username = ExcelUtils.getCellData(filePath, "Sheet1", 0, 0);
String password = ExcelUtils.getCellData(filePath, "Sheet1", 0, 1);
System.out.println("Username: " + username);
System.out.println("Password: " + password);
// WebDriver code
// driver.findElement(By.id("username")).sendKeys(username);
// driver.findElement(By.id("password")).sendKeys(password);
}
}
🔄 Tips:
-
.xlsxfiles are handled byXSSFWorkbook,.xlsbyHSSFWorkbook. -
Add null checks if your Excel might have empty cells.
-
You can enhance this utility to read full rows, columns, or convert to 2D array.
Let me know if you want to read all data as a table or use DataProvider with TestNG too.