Исключение нулевого указателя - драйвер нулевой - PullRequest
1 голос
/ 29 марта 2020

Я начинаю изучать Selenium в Java, и у меня есть большое препятствие.

import org.junit.After;
import org.junit.Before;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class FirstTest {
    WebDriver driver;

    @Before
    public void driverSetup() {
        System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.manage().window().setSize(new Dimension(1280, 720));
    }

    @After
    public void driverQuit() {
        driver.quit();
    }

    @Test
    public void getMethod() {
        driver.get("http://google.pl");
    }

}

Я не знаю, как его решить, потому что в "getMethod" драйвер равен NULL.

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Вы были близки. Вы уже определили экземпляр WebDriver , то есть driver как глобальный экземпляр, как в:

WebDriver driver;

Вы можете повторно использовать этот экземпляр в @Before, @Test и @After. Таким образом, нет необходимости объявлять любые дополнительные установки WebDriver в @Before, как вы это сделали:

WebDriver driver = new ChromeDriver();

Решение

Решение будет используйте тот же глобальный WebDriver экземпляр следующим образом:

WebDriver driver;

@Before
public void driverSetup() {
    System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
    driver = new ChromeDriver();
    driver.manage().window().setSize(new Dimension(1280, 720));
}
0 голосов
/ 29 марта 2020

Вы определили WebDriver driver; на глобальном уровне, а затем вы снова определяете и создаете экземпляр другого WebDriver driver в методе driverSetup, из-за которого глобальный драйвер никогда не создавался.
Вам необходимо создать один изменение строки в методе driverSetup, и оно будет работать.
Ваш driverSetup должен выглядеть следующим образом:

@Before
public void driverSetup() {
    System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
    // Instantiating the global driver here
    driver = new ChromeDriver();
    driver.manage().window().setSize(new Dimension(1280, 720));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...