Проблема (Вопрос) заключается в том, что при передаче драйвера объекту и попытке поиска элемента, появляется ошибка NullPointerException, но если этот элемент искать с теста, тогда все ок.
public class DemoTest {
private WebDriver driver;
@Test
public void userLogin() {
driver = HelperChromeDriver.setUp("https://javarush.ru");
new BasePage(driver);
HelperChromeDriver.closeDown();
}
public class HelperChromeDriver {
private static WebDriver driver;
@Before
public static WebDriver setUp(String URL) {
System.setProperty("webdriver.chrome.driver", "/javarushautotest/drivers/chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
//driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get(URL);
return driver;
}
@After
public static void closeDown() {
driver.quit();
}
}
public class BasePage {
private WebDriver driver;
public BasePage(WebDriver driver){
this.driver = driver;
}
//oll left menu
private WebElement lMenuCourse = driver.findElement(By.linkText("Курс"));
public CoursePage goCoursePage(){
lMenuCourse.click();
return new CoursePage(driver);
}
}
Логи и ошибка вот такая:
java.lang.NullPointerException
at ru.javarush.BasePage.(BasePage.java:21)
at ru.javarush.DemoTest.userLogin(DemoTest.java:16)
…
А вот если иска элемент прямо в тесте, тогда все ок:
public class DemoTest {
private WebDriver driver;
@Test
public void userLogin() {
driver = HelperChromeDriver.setUp("https://javarush.ru");
WebElement lMenuCourse = driver.findElement(By.linkText("Курс"));
HelperChromeDriver.closeDown();
}
}