im Получение значения драйвера = null в унаследованном классе, который унаследован от базового класса, а также получение исключения нулевой точки (селен) - PullRequest
1 голос
/ 05 августа 2020

Я также попытался написать этот метод в базовом классе, но здесь я также получаю значение драйвера как null, см. Прикрепленную фотографию Я получаю значение драйвера = null в унаследованном классе, который унаследован от базового class, а также получение исключения нулевой точки (селен)

Это код, в котором я столкнулся с проблемой, здесь присутствуют два класса: один является базовым классом, а один - дочерним классом

    public class Base
    {
        public WebDriver driver;
        public Properties prop;

        public WebDriver initializeDriver() throws IOException {

            prop = new Properties();
            FileInputStream fis = new FileInputStream("C:\\Selenium\\projectsdemo\\src\\main\\java\\data.properties");

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

            if (browserName.equals("chrome")) {
                System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\Browsersdrivers\\chromedriver.exe");
                driver = new ChromeDriver();
                //execute in chrome driver
                return driver;
            }

            //in below class where im inheriting here im getting value of driver=null;

        public class Screenshotusinglistener extends Base {
            public WebDriver driver;
            public void initialize() throws IOException {
                driver = initializeDriver();
                System.out.println("value of driver is" + driver);
            }

            public void Fail() throws Throwable {

                System.out.println("driver=" + driver);
                try {
                    File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); //Here getting null pointer may be driver value is null thats why
                    FileUtils.copyFile(scrFile, new File("d:\\Selenium\\Screenshots\\screenshot.png"));

                    } catch (Exception e) { // TODO: handle exception }
                        e.printStackTrace();
                }
            }
        }

следующие строковые ошибки:

File scrFile = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.FILE); // Здесь получение нулевого указателя может быть нулевым значением драйвера, поэтому

Ответы [ 2 ]

1 голос
/ 05 августа 2020

Вернуть драйвер в базовом классе

public class Base {

public WebDriver driver;

public WebDriver initializedriver() {
    System.setProperty("webdriver.chrome.driver", "C:\\Drivers\\chromedriver.exe");
    driver = new ChromeDriver();
    return driver;
}

}
0 голосов
/ 05 августа 2020

Изменить: добавить следующее в Fail().

public void Fail() throws IOException {
        if (driver == null) {
                initializeDriver();
        }
        //Existing code.
}

Проверить, равно ли browserName chrome. Обрабатывается только случай, когда browserName равно chrome. Это тоже может быть проблемой.

if (browserName.equals("chrome")) {
        driver = new ChromeDriver();
        //processing
        return driver;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...