package zacksolutions.base; import java.io.FileInputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.time.Duration; import java.util.Properties; import com.aventstack.extentreports.ExtentTest; import com.aventstack.extentreports.reporter.ExtentSparkReporter; import com.aventstack.extentreports.ExtentReports; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.firefox.FirefoxOptions; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.annotations.Parameters; public class Initialization { // let's set up our variables // private static ThreadLocal driver = new ThreadLocal<>(); public static WebDriver driver; public static Properties prop; public static ExtentReports extent; public static ExtentTest test; public Initialization() { // let's use the config.properties file to set up our global variables... try { prop = new Properties(); FileInputStream fis = new FileInputStream( System.getProperty("user.dir") + "/src/main/java/zacksolutions/config/config.properties"); prop.load(fis); } catch (IOException e) { // TODO: handle exception e.printStackTrace(); } } @Parameters("browser") public void BrowserInit(String browser) { // our EXTENTREPORTS SETUP! String path = System.getProperty("user.dir") + "/reports/index.html"; ExtentSparkReporter spark = new ExtentSparkReporter(path); spark.config().setDocumentTitle("Zen Test Case"); spark.config().setReportName("Zenful"); extent = new ExtentReports(); extent.attachReporter(spark); extent.setSystemInfo("Tester ID: ", "Sami"); if (browser.equalsIgnoreCase("chrome")) { ChromeOptions options = new ChromeOptions(); try { driver = new RemoteWebDriver(new URL("http://192.168.1.215:4444/wd/hub"), options); } catch (MalformedURLException e) { e.printStackTrace(); // TODO: handle exception } } else if (browser.equalsIgnoreCase("firefox")) { FirefoxOptions options = new FirefoxOptions(); try { driver = new RemoteWebDriver(new URL("http://192.168.1.215:4444/wd/hub"), options); } catch (MalformedURLException e) { // TODO: handle exception e.printStackTrace(); } } else { throw new IllegalArgumentException("Unsupported browser: " + browser); } // // // conditioning our WebDriver with an if statement // String browsername = prop.getProperty("browserF"); // // // launching FireFox // if (browsername.equalsIgnoreCase("firefox")) { // // System.setProperty("web-driver.gecko.driver","user.dir" + // // "/drivers/geckodriver"); // // driver = new FirefoxDriver(); // FirefoxOptions options = new FirefoxOptions(); // options.addArguments("--headless"); // driver = new FirefoxDriver(options); // } // // // launching Chrome // if (browsername.equalsIgnoreCase("chrome")) { // // System.setProperty("web-driver.gecko.driver", "user.dir" + // // "/drivers/chromedriver"); // // driver = new ChromeDriver(); // ChromeOptions options = new ChromeOptions(); // options.addArguments("--headless"); // driver = new ChromeDriver(options); // } driver.get(prop.getProperty("url")); driver.manage().window().maximize(); driver.manage().deleteAllCookies(); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); } }