Я пытаюсь создать класс java для чтения файла excel. Я хочу использовать его в Selenium WebDriver (используя Eclipse IDE) для создания сценариев, управляемых сценариями.Ошибка вызова класса java (Selenium WebDriver, TestNG)
У меня есть одна линия, пни меня:
// ошибка здесь ---- >>>> Object [] [] retObjArr = данные ("C: \ ExcelFiles \ LoginData.xls");
Эта строка генерирует ошибку «Данные метода (String) не определены для типа« Вход » Я довольно новичок в ООП, но думал, что могу назвать класс ExcelRead, как указано выше, и передать в одну строку arg. .. но, очевидно, нет!
Я уверен, что многие из вас знают, как работают аннотации TestNG DataProviders, что я и делаю здесь. Существует много примеров этого, но все они вытаскивают код ExcelRead в основной класс TestNG (вход в этом случае). Я думал, что сделаю класс excelRead отдельным файлом класса, который я мог бы просто вызвать из любого тестового класса, который я создаю в будущем.
import org.openqa.selenium.WebElement;
import org.openqa.selenium.safari.SafariDriver;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.io.File;
import java.io.FileInputStream;
import java.util.HashMap;
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;
public class Login {
@DataProvider(name = "ExcelInput")
public Object[][] createData() throws Exception{
ExcelRead data = new ExcelRead();
// ошибка здесь ---- >>>> Object [] [] retObjArr = данные ("C: \ ExcelFiles \ LoginData.xls"); return (retObjArr); }
@Test(dataProvider = "ExcelInput")
public void LoginTest(String Username, String Password) throws InterruptedException{
System.out.println("test");
}
}
// code in its own Class file
import java.io.File;
import java.io.FileInputStream;
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;
public class ExcelRead {
public static Object[][] main(String[] args) throws Exception{
File excel = new File(args[1]);
FileInputStream fis = new FileInputStream(excel);
HSSFWorkbook wb = new HSSFWorkbook(fis);
HSSFSheet ws = wb.getSheet("Input") ;
int rowNum = ws.getLastRowNum() + 1 ;
int colNum = ws.getRow(0).getLastCellNum() ;
String[][] data = new String[rowNum][colNum] ;
for (int i = 0 ; i < rowNum ; i++) {
HSSFRow row = ws.getRow(i) ;
for (int j = 0 ; j < colNum ; j++) {
HSSFCell cell = row.getCell(j) ;
String value = cellToString(cell);
data[i][j] = value ;
System.out.println("the value is " + value);
}
}
return data;
}
public static String cellToString(HSSFCell cell) {
int type ;
Object result ;
type = cell.getCellType() ;
switch (type) {
case 0 : // numeric value in Excel
result = cell.getNumericCellValue() ;
break ;
case 1 : // String Value in Excel
result = cell.getStringCellValue() ;
break ;
default :
throw new RuntimeException("There are no support for this type of cell") ;
}
return result.toString() ;
}
}
Это дает: Данные метод (String) не определено для типа Логин – RalphF
Вы назвали data.main() или data()? – Richard
Ошибка msg для data(): Метод data() не определен – RalphF