Я пытаюсь передать экземпляр веб-драйвера Selenium из Master. java в Child. java, но я получаю исключение нулевого указателя в строке 9 в Child. java. Добавление расширений к классу должно позволить мне получить доступ к переменным в Master, но это не так.
Exception in thread "main" java.lang.NullPointerException
at java.util.Objects.requireNonNull(Objects.java:203)
at org.openqa.selenium.support.ui.FluentWait.<init>(FluentWait.java:106)
at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:85)
at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:45)
at Child.someMethod(Child.java:9)
at Master.main(Master.java:28)
Master. java
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Master {
public WebDriver driver;
public void launchBrowser() {
System.setProperty("webdriver.chrome.driver", "/chromedriver");
driver = new ChromeDriver();
}
public void gotoPage() {
driver.get("https://www.google.com");
}
public void closeBrowser() {
driver.quit();
}
public static void main(String[] args) throws InterruptedException {
Master m = new Master();
Child c = new Child();
m.launchBrowser();
m.gotoPage();
c.someMethod();
m.closeBrowser();
}
}
Child. java
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Child extends Master {
public void someMethod() throws InterruptedException {
WebDriverWait wait = new WebDriverWait(driver,30);
}
}