in.mayurshah.base.BaseActions Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of selenium-helper Show documentation
Show all versions of selenium-helper Show documentation
selenium-helper is developed to easily automate test cases using Selenium WebDriver.
The newest version!
package in.mayurshah.base;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import com.google.gson.JsonObject;
import in.mayurshah.DTO.WebDriverConfig;
import in.mayurshah.util.Log;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
import in.mayurshah.DTO.TestCase;
public abstract class BaseActions {
protected WebDriver driver;
protected static Log log;
protected WebDriverConfig config;
protected String baseURL;
protected TestCase testCase;
private static int testCaseCount = 1;
/**
* This gets invoked even before suite starts.
* @param ReportLocation - Provide location where you want to store the report
*/
@Parameters({"ReportLocation"})
@BeforeSuite
public void beforeSuite(@Optional String ReportLocation){
log = new Log();
log.setReportDirectory(ReportLocation);
}
@BeforeMethod
@Parameters({ "remoteURL", "baseURL", "OS", "browser",
"version", "internal" })
public void beforeTest(String remoteURL, String baseURL,
String OS, String browser, String version, String internal)
throws IOException {
this.testCase = new TestCase();
this.testCase.setExecutionEnvironment("{browser:"+browser+",browserVersion:"+version+",OperatingSystem:"+OS+"}");
this.testCase.setParentURL(baseURL);
this.testCase.setTestCaseId("KT"+testCaseCount++);
this.testCase.setScreenshotDirectory(log.getReportDirectory()+ File.separator + "images");
config = new WebDriverConfig();
config.setRemoteURL(remoteURL);
this.baseURL = baseURL;
config.setOS(OS);
config.setBrowserName(browser);
config.setBrowserVersion(version);
config.setIntenal(Boolean.parseBoolean(internal));
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--enable-strict-powerful-feature-restrictions");
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("profile.default_content_settings.geolocation", 2);
jsonObject.addProperty("profile.default_content_setting_values.notifications",2);
options.setExperimentalOption("prefs", jsonObject);
options.addArguments("--disable-notifications");
config.setChromeOptions(options);
driver = xRemoteWebDriver.getInstance(config, log);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get(this.baseURL);
}
@AfterMethod
public void afterTest(ITestResult itr) {
testCase.setExecutionTime((itr.getEndMillis() - itr.getStartMillis()));
testCase.setTestCaseName(itr.getName());
log.addTestCase(testCase);
try {
driver.close();
} catch (Exception ignore) {
}
try {
driver.quit();
} catch (Exception ignore) {
}
}
@AfterSuite
public void afterSuite(ITestContext itc) throws IOException{
log.setTestSuiteName(itc.getSuite().getName());
log.writeReport();
log.zipAndEmailFile();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy