mardi 23 octobre 2018

Selenium tests on different browsers

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