java.lang.NullPointerException,使用硒和黄瓜进行自动化测试时

时间:2020-09-23 20:27:42

标签: java selenium-webdriver cucumber

代码运行良好,但是我为要测试的新页面创建了一个新页面对象,但出现此空指针异常。我认为这是我遇到的两个问题。

public class LoggedInPageSteps {
    WebDriver driver;   
    private Logger logger = Logger.getLogger(HomePage.class);
    LoggedInPage loggedInPage;

    @Then ("^I check the my account info tag$")
    public void verifyLoggedInPage() {
        logger.info("Inside loggedinpagesteps verifyloggedin function.");
        logger.info(loggedInPage.getAcctInfoTag());
        loggedInPage.checkLoggedIn();
        //Commons.check(loggedInPage.getAcctInfoTag().equals("My Account Information"), driver, 
        "Title doesnt match");
    
    }

public class LoggedInPage {

    @FindBy(tagName = "h1")
    WebElement acctInfoTag;

    WebDriver driver;
    //LoggedInPage loggedInPage;

    private Logger logger = Logger.getLogger(LoginPage.class);


    public LoggedInPage(WebDriver driver) {
        this.driver = driver; 
        PageFactory.initElements(driver, this);
    }

    public String getAcctInfoTag() {
        logger.info("insdie LoggedInPage funcrion getAccountInfoTag().");
        return Commons.getElementText(driver, acctInfoTag, 5);
    }

    public void checkLoggedIn() {
        logger.info("Inside LoggedInPage inside function CheckLoggedIn.");
        logger.info(Commons.getElementText(driver, acctInfoTag, 5));
        Commons.check(Commons.getElementText(driver, acctInfoTag, 5).equals("My Account 
        Information"), driver, "Not on logged in page.");
    }

}

这是网络驱动程序问题吗?我是自动化测试的新手,如果这是一个简单的错误,请原谅我。

1 个答案:

答案 0 :(得分:0)

您永远不会实例化loggedInPage。在LoggedInPageSteps中创建以下构造函数,以使Cucumber通过依赖性注入为您完成此工作:

public LoggedInPageSteps(LoggedInPage loggedInPage) {
  this.loggedInPage = loggedInPage;
}

您还必须添加io.cucumber.picocontainer作为开发依赖项。