Getting an error:
FAILED: com.testingvasitum.testcases.LoginpageTests.login
org.testng.internal.reflect.MethodMatcherException:
[public void com.testingvasitum.testcases.LoginpageTests.login(java.lang.String,java.lang.String) throws java.lang.InterruptedException] has no parameters defined but was found to be using a data provider (either explicitly specified or inherited from class level annotation).
Data provider mismatch
I try to get the data from excel sheet by using dataProvider to login with multiple credentials by writing the script mentioned below:
public final class LoginpageTests extends BaseTest {
@Test(dataProvider="loginData")
public void login(String email, String pass, String scenario) throws InterruptedException {
//Uninterruptibles.sleepUninterruptibly(3, TimeUnit.SECONDS);
//WebDriverWait wait = new WebDriverWait(DriverManager.getDriver(), Duration.ofSeconds(30));
new VasitumLoginPage()
.enterEmail(email)
.enterPass(pass)
.clickOnLoginButton();
String actualDashboardTitle = DriverManager.getDriver().getCurrentUrl();
String expectedDashboardTitle = FrameworkConstants.getRecruiterDashboardTitle();
Assert.assertSame(actualDashboardTitle, expectedDashboardTitle, scenario);
}
@DataProvider(name = "loginData")
public Object[][] getData() throws IOException, InterruptedException {
FileInputStream fs = new FileInputStream("C:\\Users\\maven\\Desktop\\TestData.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(fs);
XSSFSheet sheet = workbook.getSheet("Login");
int row = sheet.getLastRowNum() + 1;
System.out.println("Row: "+ row);
int column = sheet.getRow(0).getLastCellNum();
System.out.println("Column: "+ column);
Object[][] data = new Object[row-1][column];
for(int r=0; r<row-1; r++) {
for(int c=0; c<column; c++) {
data[r][c] = sheet.getRow(r+1).getCell(c).getStringCellValue();
//System.out.println("Value of row and column "+ r + c + ": "+ data[r][c]);
}
}
return data;
}
}