Я также попытался написать этот метод в базовом классе, но здесь я также получаю значение драйвера как 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); // Здесь получение нулевого указателя может быть нулевым значением драйвера, поэтому