Java/硒-java.lang.NullPointerException [英] Java/Selenium - java.lang.NullPointerException

查看:80
本文介绍了Java/硒-java.lang.NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我执行测试时,我有这个"java.lang.NullPointerException". 如何解决此问题?已经检查了其他主题,但是仍然有一些麻烦. 将很高兴解决这个问题.

When I execute test I have this "java.lang.NullPointerException". How can I fix this issue? Already check other topics, but still have some troubles. Will be very pleasured to solve this problem.

测试(单击登录页面):

Test(login page click):

public class MainPage {
private WebDriver driver;

static WebDriver wait;

public MainPage(WebDriver driver) {
this.driver = driver;
}

@FindBy (xpath = "//a[text()='Sign in']" )
private WebElement signInButton;

public LoginPage clickSignIn() {
    signInButton.click();
    return new LoginPage(driver);
}

主要:

public class MainPageTest {
private WebDriver driver;
private MainPage mainPage;


@Before
public void setUp() {
    driver = new ChromeDriver();
    driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
    driver.manage().window().maximize();
    driver.get("https://github.com");
    mainPage = new MainPage(driver);

}

@Test
public void signInTest(){
    LoginPage loginPage = mainPage.clickSignIn();
    String heading = loginPage.getHeadingText();
    Assert.assertEquals("Sign in to GitHub", heading);
}

@After
public void tearDown(){
    driver.quit();
}

LoginPage类:

LoginPage class:

public class LoginPage {
WebDriver driver;

public LoginPage(WebDriver driver){
    this.driver = driver;
}

private By loginField = By.xpath(".//*[@id='login_field']");
private By passwordField = By.xpath(".//*[@id='password']");
private By signInButton = By.xpath("//input[@type='submit']");
private By heading = By.xpath("//div[contains(@class, 'auth-form-   header')]/h1");
private By error = By.xpath(".//*[@id='js-flash-container']//div[@class='container']");
private By createAccLink = By.xpath("//a[text()='Create an account']");

推荐答案

您尚未初始化页面对象Model类,因此引发了NULL指针异常.因此,需要将signInButton移到clickSignIn按钮内,如下所示

You haven't intialize your page object Model class and hence NULL Pointer exception is throwing. So,, signInButton needs to be moved inside the clickSignIn button as below

public LoginPage clickSignIn() {
    WebElement signInButton=driver.findElement(By.xpath("//a[text()='Sign in']"));
    signInButton.click();
    return new LoginPage(driver);
}

其他

您需要按如下所示初始化MainPage类

you need to initialize your MainPage class as below

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

这篇关于Java/硒-java.lang.NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆