0

I am getting a NullPointerException when I execute the below code. Please help me with the solution. I have done using page object model. unable to perform the further actions.

browser.java

public class browser {

    public WebDriver driver= null;

    public void initialize() {
        System.setProperty("webdriver.gecko.driver","C:\\Users\\Teddy\\Downloads\\geckodriver-v0.21.0-win64\\geckodriver.exe");
        driver = new FirefoxDriver();
        driver.get("http://www.google.com");
        System.out.println("Application title is ============="+driver.getTitle());
    }

    public void window_close() {
        driver.quit();
    }
}

loginobjects.java

public class loginobjects extends browser {

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

    @FindBy(id="lst-ib")
    public WebElement name;

    @FindBy(name="btnK")
    public  WebElement name2;

    public void login(){
        name.sendKeys("Selenium with Java");
        name2.click();
    }
}

logintestcase

public class logintestcase extends browser {
    public loginobjects log;

    @Test
    public void details() {  
        log= new loginobjects(driver);
        super.initialize();
        System.out.println("here");
        log.login();
        System.out.println("here");
        super.window_close();
    }
}

Exception

java.lang.NullPointerException
    at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)
    at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
    at com.sun.proxy.$Proxy7.click(Unknown Source)
    at loginobjects.login(loginobjects.java:28)
    at logintestcase.details(logintestcase.java:13)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:580)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:716)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:988)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.privateRun(TestRunner.java:648)
    at org.testng.TestRunner.run(TestRunner.java:505)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
4
  • Does it open the google site? Commented Aug 30, 2018 at 18:23
  • yes it opens the google site. Commented Aug 30, 2018 at 18:31
  • driver initilization should happen before the use of driver, your answer below Commented Aug 30, 2018 at 19:05
  • Possible duplicate of What is a NullPointerException, and how do I fix it? Commented Aug 30, 2018 at 20:18

1 Answer 1

1

Ok so you have passed the driver to the loginobjects before initilizing it so you are gettting the error.

Edit logintestcase class as below by putting initilization before the passing of driver.

public class logintestcase extends browser {
    public loginobjects log;

    @Test
        public void details()

        {
            super.initialize();
            log= new loginobjects(driver);
            System.out.println("here");
            log.login();
            System.out.println("here");
            super.window_close();


        }


    }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.