2017-01-18 49 views
1

我写了一个数据驱动的脚本,通过一个Excel文档中使用Jexcel API读取喂,现在要我的变量分离成单独的类,但我收到“无法对静态字段进行静态引用”错误。硒的webdriver - 引用非静态 - jexcel字符串作为静态

你可以建议,我怎么可以这样做,则下方显示的“变量”类的样本;

//jexcel sheet/cell reference 
Cell btcell0 = sheet.getCell(6, 2); 
//variable name required to be static 
String tNbuyName = btcell0.getContents(); 

例子我已经看到了哪些可以让我引用另一个类的变量,它会产生“无法对非静态字段进行静态引用”的错误;

public static final String tNbuyName = .............. 

回答

1

您不能将静态值分配给静态类字段。要从中获取值的方法应该是静态方法,或者字段tNbuyName应该是非静态的。

可以将tNbuyName设置为非静态或使用静态实用程序方法来获取值并将其分配给tNbuyName。

0

嗨,大家好感谢回来给我,我的这种认识越来越清晰,但我还是有点浑浊....

这是我使用的是从“ExcelUtils”类中的方法

public static void setExcelFile(String Path, int Sheetname) throws Exception { 


    try { 
     Workbook workb = Workbook.getWorkbook(new File(Path)); 
     Sheet = workb.getSheet(Sheetname); 
    } catch (Exception e) { 
     throw (e); 
    } 
} 


public static String getCellData(int ColNum, int RowNum) throws Exception{ 

    try { 
     Cell = Sheet.getCell(ColNum, RowNum); 
     String CellData = Cell.getContents(); 
     return CellData; 

    } catch (Exception e) { 
     return ""; 
    } 
} 

继在“ResultsMap”类,我为我的变量分配值......

public class ResultsMap { 

public static void WriteTo() throws Exception { 

String tNbuyName = ExcelUtils.getCellData(6, 2); 
String tNbuyPass = ExcelUtils.getCellData(6, 3); 
String tAccName = ExcelUtils.getCellData(6, 4); 
String tCasNo = ExcelUtils.getCellData(6, 5); 
etc, etc...... 

,但现在在AdminBUser类我要访问的变量在ResultsMap中,但我该怎么做呢?

作为一个例子,我已尝试的System.out.println(ResultsMap.WriteTo(tNbuyName);

但该消息被显示,告知tNbuyName不能被解析为一个可变

这是文件结构为......

Image of package explorer

相关问题