当使用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.");
}
}