我是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))
但因为无法从对象转换为布尔值而得到错误;尝试将其强制转换为布尔值,但这也不起作用。
有没有其他方法或更好的方法来写它
答案 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
值。它具有值""
,String
或row.getCell(0)
,我假设它返回Object
。
如果if
为空字符串或row.getCell(0)
,您似乎希望运行null
块的内容。如果是这种情况,那么最简单的方法就是编写
if(row.getCell(0) == null || row.getCell(0).toString().length()==0){