Getting DataProvider mismatch exception. Below is the code can anyone help me? My Excel file is having 6 values where I am passing the same amount of values from the Excel.
package newtoursProject;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class Test_file2 {
WebDriver driver;
@BeforeTest
@Parameters({"param1","param2","param3"})
void environment(String sg1,String sg2,String sg3)
{
System.setProperty(sg1, sg2);
driver=new ChromeDriver();
driver.get(sg3);
}
@Parameters({"param4","param5"})
@Test(priority=1)
void login(String sn,String sn2)
{
driver.findElement(By.name(ObjectRepository.s1)).sendKeys(sn);
driver.findElement(By.name(ObjectRepository.s2)).sendKeys(sn2);
driver.findElement(By.name(ObjectRepository.s3)).click();
}
@Test(dataProvider="fb")
void flight(String s1,String s2,String s5,String s6,String s7,String s8)
{
System.out.println("Hello");
radio(s1,s2);
System.out.println("Hello");
//dropdown(s3,s4);
dropdown(s5,s6);
dropdown(s7,s8);
}
public void dropdown(String a,String b)
{
WebElement dropdown=driver.findElement(By.name(a));
Select obj= new Select(dropdown);
obj.selectByVisibleText(b);
}
public void radio(String a,String b)
{
System.out.println("Hello");
List<WebElement> radio=driver.findElements(By.name(a));
System.out.println(radio);
for(WebElement temp:radio)
{
if(temp.getAttribute("value").contains(b))
{
//System.out.println("Hello");
temp.click();
}
}
}
String[][] getDataExcel(String filename,String sheetname) throws IOException
{
FileInputStream fin=new FileInputStream(filename);
HSSFWorkbook wbk=new HSSFWorkbook(fin);
HSSFSheet sheet=wbk.getSheet(sheetname);
int rowsize=sheet.getLastRowNum()+1;
int colsize=sheet.getRow(0).getLastCellNum();
System.out.println(rowsize);
System.out.println(colsize);
HSSFRow row;
HSSFCell cell;
String ar[][]=new String[rowsize][colsize];
for(int i=0;i<rowsize;i++)
{
row=sheet.getRow(i);
for(int j=0;j<colsize;j++)
{
cell=row.getCell(j);
ar[i][j]=cell.getStringCellValue();
System.out.print(cell.getStringCellValue()+"\t");
}
System.out.println();
}
return ar;
}
@DataProvider(name="fb")
Object[][] Registration() throws IOException
{
Object[][] str=getDataExcel("C:\\Users\\sailu\\Desktop\\NewTours_project.xls","Sheet1");
return str;
}
}
Using TestNG framework and using dataprovider reading data from Excel and passing the same values as specified in the test. Please help
Exception: I am getting the following exception..
flight org.testng.internal.reflect.MethodMatcherException: Data provider mismatch Method: flight([Parameter{index=0, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=1, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=2, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=3, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=4, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=5, type=java.lang.String, declaredAnnotations=[]}]) Arguments: [(java.lang.String) tripType,(java.lang.String) oneway] ... Removed 20 stack frames