im wondering is it possible to test my website on differnet browsers, not parallel but one after each other if thats possible, currently my drivers class looks like this:
public class Drivers {
private static final long IMPLICIT_WAIT_TIMEOUT = 5;
private static org.openqa.selenium.WebDriver driver;
/**
* Getting of pre-configured {@link org.openqa.selenium.WebDriver} instance.
* Please use this method only after call {@link #startBrowser(boolean) startBrowser} method
*
* @return webdriver object, or throw IllegalStateException, if driver has not been initialized
*/
public static org.openqa.selenium.WebDriver getDriver() {
if (driver != null) {
return driver;
} else {
throw new IllegalStateException("Driver has not been initialized. " +
"Please call WebDriverFactory.startBrowser() before use this method");
}
}
/** * Main method of class - it initialize driver and starts browser. * * @param isLocal - is tests will be started local or not */
public static void startBrowser(boolean isLocal) {
if (driver == null) {
Browser browser = TestsConfig.getConfig().getBrowser();
if (!isLocal) {
driver = new RemoteWebDriver(CapabilitiesGenerator.getDefaultCapabilities(browser));
} else {
switch (browser) {
case FIREFOX:
driver = new FirefoxDriver(CapabilitiesGenerator.getDefaultCapabilities(Browser.FIREFOX));
break;
case CHROME:
driver = new ChromeDriver(CapabilitiesGenerator.getDefaultCapabilities(Browser.CHROME));
break;
case IE10:
driver = new InternetExplorerDriver(CapabilitiesGenerator.getDefaultCapabilities(Browser.IE10));
break;
case SAFARI:
driver = new SafariDriver(CapabilitiesGenerator.getDefaultCapabilities(Browser.SAFARI));
break;
default:
throw new IllegalStateException("Unsupported browser type");
}
}
driver.manage().timeouts().implicitlyWait(IMPLICIT_WAIT_TIMEOUT, TimeUnit.SECONDS);
} else {
throw new IllegalStateException("Driver has already been initialized. Quit it before using this method");
}
}
/** * Finishes browser */
public static void finishBrowser() {
if (driver != null) {
driver.quit();
driver = null;
}
}
and all my tests extend this conditions web driver factory class:
public class ConditionsWebDriverFactory {
@BeforeClass
public void beforeTest() {
Drivers.startBrowser(true);
Drivers.getDriver().manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
Drivers.getDriver().manage().window().maximize();
}
@AfterClass (alwaysRun = true)
public void afterTest() {
Drivers.finishBrowser();
}
}
Any ideas on what i could do here to allow different browsers to be tested
Aucun commentaire:
Enregistrer un commentaire