0

I am new to Cucumber and was trying a basic cucumber test but getting **Java null pointer exception* . Have tried to initialize the driver in base class and using inheritance called the driver object in my util class. Could anyone please help in letting me know , where i went wrong .

Below is the result and code.

Result:

java.lang.NullPointerException
    at stepDefinations.landingPageSD.navigate_to_Site(landingPageSD.java:51)

    **BASE CLASS**

        package pages;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Properties;
    import java.util.concurrent.TimeUnit;


    import org.openqa.selenium.OutputType;
    import org.openqa.selenium.TakesScreenshot;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.apache.commons.io.FileUtils;

    public class baseTest {

        public static  WebDriver driver;
        public static WebDriver getDriver() {
            return driver;
        }

        public static void setDriver(WebDriver driver) {
            baseTest.driver = driver;
        }

        public static void getDriver(WebDriver driver) {
            baseTest.driver = driver;
        }

        public static Properties prop;
        public static WebDriver initializeDriver() throws IOException
        {

            prop= new Properties();
            FileInputStream fis=new FileInputStream("D:\\CucumberProject\\original\\E2EProjectCucumber\\src\\main\\java\\browsers\\data.properties");

            prop.load(fis);
            String browserName=prop.getProperty("browser");
            System.out.println(browserName);

            if(browserName.equals("chrome"))
            {
                System.setProperty("webdriver.chrome.driver", "D:\\CucumberProject\\original\\E2EProjectCucumber\\src\\main\\java\\browsers\\chromedriver.exe");
                driver= new ChromeDriver();


            }
            else if (browserName.equals("firefox"))
            {
                System.setProperty("webdriver.chrome.driver", "D:\\CucumberProject\\original\\E2EProjectCucumber\\src\\main\\java\\browsers\\geckodriver.exe");
                driver= new FirefoxDriver();

            }

    **UTIL CLASS**

            package pages;

        import java.io.IOException;

        import org.openqa.selenium.*;
        import org.openqa.selenium.interactions.Actions;
        import org.openqa.selenium.support.ui.ExpectedCondition;
        import org.openqa.selenium.support.ui.ExpectedConditions;
        import org.openqa.selenium.support.ui.WebDriverWait;



        public class GenericUtilsTest extends baseTest{

                public WebDriverWait wait;
                public Actions actions;


                public   boolean navigateToURL(String URL) throws Exception {
                    System.out.println("Navigating to: " + URL);
                    System.out.println("Thread id = " + Thread.currentThread().getId());

                    try {
                        driver.navigate().to(URL);
                    } catch (Exception e) {
                        System.out.println("URL did not load: " + URL);
                        throw new Exception("URL did not load");
                    }
                    return false;
                }



    Feature: Login into Application 


    Scenario Outline: Positive test validating login 

        Given Initialize the browser with chrome 
        **And Navigate to "https://www.makemytrip.com/" Site** 
        Then Make my trip landing page is displayed 
        And Click on Login link in home page to land on Secure sign in Page 
        When User enters <username> and <password> and logs in 
        Then Verify that user is succesfully logged in 

   **LandingPage**

     package stepDefinations;

    import org.junit.Assert;

    import cucumber.api.PendingException;
    import cucumber.api.java.en.And;
    import cucumber.api.java.en.Given;
    import cucumber.api.java.en.Then;
    import cucumber.api.java.en.When;

    import pages.LandingPageTest;
    import pages.LoginPageTest;
    import pages.baseTest;
    import pages.GenericUtilsTest;
    import pages.PortalHomePageTest;

    public class landingPageSD  {

        private LandingPageTest landingPage;
        private GenericUtilsTest genericPage;
        private LoginPageTest loginPage;
        private PortalHomePageTest homePage;



        public landingPageSD(LandingPageTest landingPage, GenericUtilsTest genericPage, LoginPageTest loginPage,
                PortalHomePageTest homePage) {
            super();
            this.landingPage = landingPage;
            this.genericPage = genericPage;
            this.loginPage = loginPage;
            this.homePage = homePage;
        }


        @Given("^Initialize the browser with chrome$")
        public void initialize_the_browser_with_chrome() throws Throwable {
            genericPage .initializeDriver();

        }

        @Given("^Navigate to \"(.*?)\" Site$")
        public void navigate_to_Site(String arg1) throws Throwable {
            Assert.assertTrue("Customer is not able to navigate to landing page",genericPage.navigateToURL(arg1));

        }




P K
  • 1
  • 7

0 Answers0