Selenium-webdriver отображает пустой экран Google Chrome и исключение нулевого указателя Java. Кто-нибудь может подсказать? - PullRequest
0 голосов
/ 10 ноября 2019

TestBase, который содержит метод инициализации, который создает проблему:

package TestBase;

    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.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.support.events.EventFiringWebDriver;

    public class testBasesetup {
        public static Properties prop;
        public static WebDriver driver;
        public static testBasesetup testBaseObj;
        public  static EventFiringWebDriver e_driver;

        public testBasesetup() throws Exception 
        {   
            try {
                prop = new Properties();
                File src = new File("C:\\Users\\LENOVO\\eclipse-workspace\\Demon\\src\\main\\java\\Config\\config.properties");
                FileInputStream ip = new FileInputStream(src) ;

                prop.load(ip);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        public static void initialization() throws Exception 
        {
            String browsername = prop.getProperty("browser");
            if(browsername.equals("chrome")) 
            {
                System.setProperty("webdriver.chrome.driver", "F:\\Eclipse\\chromedriver.exe");
                WebDriver driver = new ChromeDriver();

            }
            else if(browsername.equals("firefox"))
            {
                System.setProperty("webdriver.gecko.driver", "F:\\Eclipse\\browser\\geckodriver.exe");
                WebDriver driver = new FirefoxDriver();
            }   

            driver.manage().window().maximize();
            driver.manage().deleteAllCookies();
            driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
            driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

            String URLtoTest = prop.getProperty("URL");
            Thread.sleep(1000);
        }

    }

Тестовый класс, который я запускаю, и это создает проблему. Я думаю, что есть некоторая проблема с переменной драйвера, но я не знаю ошибку:

    package PageTest;

    import org.testng.annotations.AfterMethod;
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Test;

    import Pages.LoginPage;
    import TestBase.testBasesetup;

    public class LoginPageTest extends testBasesetup{
        LoginPage LoginPageObj;
        testBasesetup testBaseObj;
        public LoginPageTest() throws Exception 
        {
            super();
        }

        @BeforeMethod
        public void setup() throws Exception 
        {
            initialization();
            LoginPageObj = new LoginPage();
            Thread.sleep(2000);
        }

        @Test()
        public void LoginCheck() throws Exception 
        {
            LoginPageObj.login("first.customer@kkr.com","Potatok");
        }


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

Изображение ошибки:

Image of error Код

1 Ответ

0 голосов
/ 10 ноября 2019

Ваш статический экземпляр WebDriver остается неинициализированным. Вам нужно инициализировать статический экземпляр вместо локального экземпляра драйвера в методе initialization (). Как показано ниже:

открытый класс testBasesetup {публичные статические свойства prop;публичный статический драйвер WebDriver;public static testBasesetup testBaseObj;общедоступная статическая EventFiringWebDriver e_driver;

    public testBasesetup() throws Exception 
    {   
        try {
            prop = new Properties();
            File src = new File("C:\\Users\\LENOVO\\eclipse-workspace\\Demon\\src\\main\\java\\Config\\config.properties");
            FileInputStream ip = new FileInputStream(src) ;

            prop.load(ip);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void initialization() throws Exception 
    {
        String browsername = prop.getProperty("browser");
        if(browsername.equals("chrome")) 
        {
            System.setProperty("webdriver.chrome.driver", "F:\\Eclipse\\chromedriver.exe");
            **driver = new ChromeDriver();**

        }
        else if(browsername.equals("firefox"))
        {
            System.setProperty("webdriver.gecko.driver", "F:\\Eclipse\\browser\\geckodriver.exe");
            **driver = new FirefoxDriver();**
        }   

        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

        String URLtoTest = prop.getProperty("URL");
        Thread.sleep(1000);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...