Почему этот метод класса возвращает 'null'? - PullRequest
0 голосов
/ 10 ноября 2019

В моей среде Selenium есть класс, который отвечает за получение нового объекта драйвера и передачу его в тесты для использования.

Но по какой-то причине он возвращает нулевую ошибку, и я не могувыясните, почему.

Вот класс:

DriverManager

private WebDriver driver;

    public WebDriver getDriver() {
        WebDriverFactory factory = new WebDriverFactory();
        driver = factory.CreateBrowser(CHOSEN_BROWSER);
        return driver;
    }

Мой класс Factory:

public WebDriver CreateBrowser(BrowserType browser)
    {
        switch(browser) {
            case Chrome:
                return createChromeDriver();
            case Firefox:
                return createFirefoxDiver();
            case InternetExplorer:
                return createInternetExplorerDriver();
            default:
                System.out.println("Invalid browser type");
                return null;
        }
    }

Мои тесты, в которых я создаюэкземпляр DriverManager:

BaseTest:

public DriverManager driverManager;
    public WebDriver driver;

@ До

public void CreateDriver()
{
    driver = driverManager.getDriver();
    Pages.init(driver);
    Logging.info("TEST STARTING:  " + name.getMethodName());
}

Но как только он попадает в первую строку в методе CreateDriver. Я получил ошибку нулевого указателя, и тесты завершились с ошибкой NullPointerException.

1 Ответ

1 голос
/ 10 ноября 2019

Я предполагаю, что ваш атрибут driverManager равен нулю. Вот почему driver = driverManager.getDriver(); вызывает NPE.

Я думаю, public DriverManager driverManager = new DriverManager(); уже решит это.

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