代码运行良好,但是我为要测试的新页面创建了一个新页面对象,但出现此空指针异常。我认为这是我遇到的两个问题。
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.");
}
}
这是网络驱动程序问题吗?我是自动化测试的新手,如果这是一个简单的错误,请原谅我。
答案 0 :(得分:0)
您永远不会实例化loggedInPage
。在LoggedInPageSteps
中创建以下构造函数,以使Cucumber通过依赖性注入为您完成此工作:
public LoggedInPageSteps(LoggedInPage loggedInPage) {
this.loggedInPage = loggedInPage;
}
您还必须添加io.cucumber.picocontainer
作为开发依赖项。