package helpers; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import java.util.Objects; import java.util.concurrent.TimeUnit; public abstract class Context { private final static String DRIVER_LOCATION = "src\\main\\resources\\chromedriver.exe"; protected WebDriver driver; public WebDriver getDriver() { if (driver != null) { return driver; } throw new IllegalStateException("WebDriver is not initialized"); } public void start() { System.setProperty("webdriver.chrome.driver", "src\\main\\resources\\chromedriver.exe"); driver = new ChromeDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } public void close() { driver.quit(); } protected abstract void createDriver(); protected abstract String getDriverType(); protected abstract String getDriverExecutable(boolean windows); private String getDriverExecutablePath() { System.setProperty("webdriver.chrome.driver", DRIVER_LOCATION); return null; } private boolean isWindows() { return System.getProperty("os.name").toLowerCase().contains("windows"); } }