java.lang.NullPointerException:无法调用“org.apache.log4j.Logger.info(对象)

问题描述 投票:0回答:2

运行 selenium 脚本时日志方法中遇到问题。

  1. 我已在 pom 文件中附加了 log4j maven 存储库。

  2. log4j 设置文件也附在主目录中

任何人都可以帮我解决为什么会出现此错误吗? 错误

java.lang.NullPointerException:无法调用“org.apache.log4j.Logger.info(Object)”,因为“blocknet_maven_hybird_framework_v1.testcases.TC_login.logger”为空。

driver = new ChromeDriver () ;
    Logger logger = Logger.getLogger(TC_login.class);
    PropertyConfigurator.configure ("Log4j.properties") ;
    driver.manage().timeouts().implicitlyWait(3000,TimeUnit.SECONDS);
    }



login_page lp = new login_page( driver ) ;
    lp.setUserName ( username ) ;
    logger.info("username entered");
    lp.setPassword ( password ) ;
    //log.**info**("password is entered");
    lp.clickSubmit ( ) ;
    
    if ( driver.getTitle ( ) . equals ( "EveryCred"))
    {
    Assert.assertTrue ( true ) ;
    }
    else
    {
    Assert.assertTrue ( false ) ;
    }
    //log.info("login testcase is passed");
maven selenium-chromedriver log4j
2个回答
1
投票

我也遇到了同样的问题,但这是由于第二次初始化 Logger 类造成的。

首先我是这样声明的 “公共静态记录器日志;”

但错误地在方法体中第二次重新初始化了类 “记录器日志 = Logger.getLogger(TestBase.class);”

修复:删除第二次声明 - “log = Logger.getLogger(TestBase.class);”


0
投票

我遇到了同样的问题,但没有双重声明...只是将代码放在 window.setVisible(true) 之后的 main() 中...意味着记录器未初始化。只需按照正确的顺序编写内容即可解决问题:

  • log.getLogger...
  • window.setVisible ...
© www.soinside.com 2019 - 2024. All rights reserved.