调用java类时出错(Selenium WebDriver,TestNG)
我正在尝试创建一个用于读取excel文件的java类。我想在SeleniumWebDriver(使用EclipseIDE)中使用它来编写测试驱动脚本 我有一句话难住了我: //此处出现错误---->>>>Object[]retObjArr=data(“C:\ExcelFiles\LoginData.xls”) 此行生成错误“登录类型的方法数据(字符串)未定义” 我是OOP新手,但我想我可以像上面那样调用ExcelRead类并传入一个arg字符串…但显然不是 我相信你们中的许多人都知道TestNG数据提供者注释是如何工作的,这就是我在这里要做的。有很多这样的例子,但它们都将ExcelRead代码拉入主TestNG项目(本例中为登录)类。我想我应该使excelRead类成为一个单独的类文件,我可以从将来创建的任何测试类中调用它调用java类时出错(Selenium WebDriver,TestNG),java,class,selenium,testng,Java,Class,Selenium,Testng,我正在尝试创建一个用于读取excel文件的java类。我想在SeleniumWebDriver(使用EclipseIDE)中使用它来编写测试驱动脚本 我有一句话难住了我: //此处出现错误---->>>>Object[]retObjArr=data(“C:\ExcelFiles\LoginData.xls”) 此行生成错误“登录类型的方法数据(字符串)未定义” 我是OOP新手,但我想我可以像上面那样调用ExcelRead类并传入一个arg字符串…但显然不是 我相信你们中的许多人都知道TestNG
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=data(“C:\ExcelFiles\LoginData.xls”);
返回(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() ;
}
}
@Test(dataProvider=“ExcelInput”)
public void LoginTest(字符串用户名、字符串密码)引发InterruptedException{
系统输出打印(“测试”);
}
}
//代码在其自己的类文件中
导入java.io.File;
导入java.io.FileInputStream;
导入org.apache.poi.hssf.usermodel.HSSFCell;
导入org.apache.poi.hssf.usermodel.HSSFRow;
导入org.apache.poi.hssf.usermodel.HSSFSheet;
导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
公共课精读{
公共静态对象[][]main(字符串[]args)引发异常{
文件excel=新文件(args[1]);
FileInputStream fis=新的FileInputStream(excel);
HSSF工作手册wb=新的HSSF工作手册(fis);
HSSFSheet ws=wb.getSheet(“输入”);
int rowNum=ws.getLastRowNum()+1;
int colNum=ws.getRow(0.getLastCellNum();
字符串[][]数据=新字符串[rowNum][colNum];
for(int i=0;i
试试这个:
Object[][] retObjArr = data.fileRead("C:\ExcelFiles\LoginData.xls");
修改main
,如下所示:
将main更改为fileRead
public static Object[][] fileRead( String args) throws Exception{
File excel = new File(args);
这就给出了:对于您调用data.main()或data()的类型Logindid,方法数据(字符串)未定义?Code data.main()错误消息:类型ExcelRead中的方法main(字符串[])不适用于参数(字符串)解决方案:对象[][]retObjArr=data.main(新字符串[]{“C:\\ExcelFiles\\LoginData.xls”,“LoginData”});