读取表单Excel文件时,在selenium中获取空指针异常,无法找到解决方法

时间:2016-09-23 18:35:25

标签: java excel selenium

我是selenium的新手,我编写了一个关键字驱动框架,它从excel文件中读取并根据存在的值执行操作。 因此,在读取文件时,在特定行中,如果第一个单元格包含值,则为测试用例名称,否则为关键字。

现在当它读取没有任何值的第一个单元格时,它会抛出该行的java.lang.NullPointerException。

以下是我的代码的一部分:

   Sheet sheet = file.ReadExcelFile("E:\\workspace\\Practice1", "Keywords.xlsx", "Sheet1");
    int rowCount = sheet.getLastRowNum()-sheet.getFirstRowNum();
     for (int i = 1; i < rowCount+1; i++) {    
        Row row = sheet.getRow(i);
        //Below line gives me null pointer error
        if(row.getCell(0).toString().length()==0){  
            System.out.println(row.getCell(1).toString()+"----"+ row.getCell(2).toString()+"----"+
            row.getCell(3).toString()+"----"+ row.getCell(4).toString());
        //Call perform function to perform operation on UI
            operation.perform(allObjects, row.getCell(1).toString(), row.getCell(2).toString(),
                row.getCell(3).toString(), row.getCell(4).toString());
     }
        else{
            //Print the new testcase name when it started
                System.out.println("New Testcase->"+row.getCell(0).toString() +" Started");
            }
    }

我尝试使用三元(?)运算符解决如下: 如果(row.getCell(0)== NULL&#34;&#34;:row.getCell(0))

但因为无法从对象转换为布尔值而得到错误;尝试将其强制转换为布尔值,但这也不起作用。

有没有其他方法或更好的方法来写它

1 个答案:

答案 0 :(得分:0)

您建议更换行

if(row.getCell(0).toString().length()==0){  

if(row.getCell(0)==null?"":row.getCell(0)) {

但这不会起作用,因为表达式row.getCell(0)==null?"":row.getCell(0)没有boolean值。它具有值""Stringrow.getCell(0),我假设它返回Object

如果if为空字符串或row.getCell(0),您似乎希望运行null块的内容。如果是这种情况,那么最简单的方法就是编写

if(row.getCell(0) == null || row.getCell(0).toString().length()==0){