在webdriver中使用log.error捕获没有这样的元素?

时间:2015-03-17 14:14:56

标签: java design-patterns selenium logging try-catch

我将log4j(apache软件)作为记录器添加到我的webdriver测试中。

我想知道log.error语句是否应该作为良好实践放在catch块中

我们不应该使用异常e对象,只需使用这样的e:  e.printStackTrace()?

将log.error添加到catch块中是否正确?

​public static WebElement destinationTextBox(WebDdriver driver){    
try{    
element = driver.findElement(by...) ;  //this can raise exception if no element found  
}
//it will be caught here
catch(NoSuchElementException e){    
log.error( "no element found") ;
}

// if element found and no exception, just log 'element found'
log.info(Destination text box element found) ;

2 个答案:

答案 0 :(得分:2)

为什么不呢?但最好提供原始例外以及消息,例如log.error("Message", e);

答案 1 :(得分:0)

在生产代码的情况下,记录确实是一个好主意。但是,既然您已经提到这是一个测试代码,我建议捕获一个已检查的异常并将其重新抛出为未经检查的异常:

catch(NoSuchElementException e){    
    throw new RuntimeException(e);
}

这样您就不需要调查任何日志文件以查找可能的测试失败,但您的测试框架会明确地告诉您有关问题的信息。