Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当使用Selenium和cucumber进行自动化测试时,java.lang.NullPointerException_Java_Selenium Webdriver_Cucumber - Fatal编程技术网

当使用Selenium和cucumber进行自动化测试时,java.lang.NullPointerException

当使用Selenium和cucumber进行自动化测试时,java.lang.NullPointerException,java,selenium-webdriver,cucumber,Java,Selenium Webdriver,Cucumber,代码运行正常,但我为要测试的新页面创建了一个新页面对象,但我得到了这个空指针异常。以下是我认为有问题的两个班级 public class LoggedInPageSteps { WebDriver driver; private Logger logger = Logger.getLogger(HomePage.class); LoggedInPage loggedInPage; @Then ("^I check the my account i

代码运行正常,但我为要测试的新页面创建了一个新页面对象,但我得到了这个空指针异常。以下是我认为有问题的两个班级

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");
    
    }


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

您从未实例化
loggedInPage
。在
LoggedInPageSteps
中创建follinwing构造函数,让Cucumber通过依赖项注入为您完成这项工作:

public LoggedInPage步骤(LoggedInPage LoggedInPage){
this.loggedInPage=loggedInPage;
}

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

这是否回答了您的问题?
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.");
    }

}