Selenium Webdriver - 引用非静态 - jexcel字符串作为静态

时间:2017-01-18 13:01:16

标签: java selenium webdriver

我编写了一个数据驱动脚本,由一个使用Jexcel API读取的Excel文档提供,现在想将我的变量分成一个单独的类,但是我收到了#34;无法对非静态进行静态引用字段"错误。

你能否就我如何做到这一点提出建议,这是一个'变量的样本。课程如下所示;

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

示例I已经看到哪个允许我引用另一个产生&#34的类的变量;不能对非静态字段进行静态引用"误差;

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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