private WebdriverProxyFactory() { webDriverFactory = new WebDriverFactory(); this.configuration = Injectors.getInjector().getInstance(Configuration.class); }
private Capabilities findSaucelabsCapabilities() { String driver = getDriverFrom(environmentVariables); DesiredCapabilities capabilities = capabilitiesForDriver(driver); configureBrowserVersion(capabilities); configureTargetPlatform(capabilities); configureTestName(capabilities); capabilities.setJavascriptEnabled(true); return capabilities; }
private boolean supportsScreenResizing(final WebDriver driver) { return isNotAMocked(driver) && (!isAnHtmlUnitDriver(getDriverClass(driver))); }
private Capabilities findSaucelabsCapabilities() { String driver = getDriverFrom(environmentVariables); DesiredCapabilities capabilities = capabilitiesForDriver(driver); return sauceRemoteDriverCapabilities.getCapabilities(capabilities); }
try { WebDriver driver; if (isARemoteDriver(driverClass) || shouldUseARemoteDriver() || saucelabsUrlIsDefined()) { driver = newRemoteDriver(); } else if (isAFirefoxDriver(driverClass)) { driver = firefoxDriver(); } else if (isAnHtmlUnitDriver(driverClass)) { driver = htmlunitDriver(); } else if (isAPhantomJSDriver(driverClass)) { setPhantomJSPathIfNotSet(); driver = phantomJSDriver(); } else if (isAChromeDriver(driverClass)) { driver = chromeDriver(); } else if (isASafariDriver(driverClass)) { driver = safariDriver(); } else if (isAnInternetExplorerDriver(driverClass)) { driver = internetExplorerDriver(); } else if (isAProvidedDriver(driverClass)) { driver = providedDriver(); } else { driver = newDriverInstanceFrom(driverClass); setImplicitTimeoutsIfSpecified(driver); redimensionBrowser(driver);
profile = createNewFirefoxProfile(); } else { profile = getProfileFrom(profileName); firefoxProfileEnhancer.activateNativeEventsFor(profile, shouldEnableNativeEvents()); if (shouldActivateProxy()) { activateProxyFor(profile, firefoxProfileEnhancer); if (refuseUntrustedCertificates()) { profile.setAssumeUntrustedCertificateIssuer(false); profile.setAcceptUntrustedCertificates(false);
public static String getDriverFrom(EnvironmentVariables environmentVariables, String defaultDriver) { String driver = getDriverFrom(environmentVariables); return (driver != null) ? driver : defaultDriver; }
private WebDriver newDriverInstance() { try { webDriverFactory.setupFixtureServices(); return webDriverFactory.newWebdriverInstance(driverClass); } catch (UnsupportedDriverException e) { LOGGER.error("FAILED TO CREATE NEW WEBDRIVER_DRIVER INSTANCE " + driverClass + ": " + e.getMessage(), e); throw new UnsupportedDriverException("Could not instantiate " + driverClass, e); } }
public Duration resetTimeouts(WebDriver proxiedDriver) { Duration currentTimeout = currentTimeoutFor(proxiedDriver); if (!timeoutStack.containsTimeoutFor(proxiedDriver)) { return currentTimeout; } timeoutStack.popTimeoutFor(proxiedDriver); Duration previousTimeout = currentTimeoutFor(proxiedDriver);//timeoutStack.popTimeoutFor(proxiedDriver).or(getDefaultImplicitTimeout()); if ((currentTimeout != previousTimeout) && isNotAMocked(proxiedDriver)) { proxiedDriver.manage().timeouts().implicitlyWait(previousTimeout.toMillis(), TimeUnit.MILLISECONDS); } return previousTimeout; }
public void resetTimeouts(WebDriver proxiedDriver) { Duration currentTimeout = currentTimeoutFor(proxiedDriver); if (timeoutStack.containsTimeoutFor(proxiedDriver)) { Duration previousTimeout = timeoutStack.popTimeoutFor(proxiedDriver).or(getDefaultImplicitTimeout()); if ((currentTimeout != previousTimeout) && isNotAMocked(proxiedDriver)) { proxiedDriver.manage().timeouts().implicitlyWait(previousTimeout.in(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS); } } }
protected synchronized WebDriver newWebdriverInstance(final Class<? extends WebDriver> driverClass, String options, EnvironmentVariables environmentVariables) { RedimensionBrowser redimensionBrowser = new RedimensionBrowser(environmentVariables); try { SupportedWebDriver supportedDriverType = inEnvironment(environmentVariables).forDriverClass(driverClass); WebDriver driver = driverProviders().get(supportedDriverType).newInstance(options,environmentVariables); setImplicitTimeoutsIfSpecified(driver); redimensionBrowser.withDriver(driver); closeBrowser.closeWhenTheTestsAreFinished(driver); return driver; } catch (SerenityManagedException toPassThrough) { throw toPassThrough; } catch (Exception cause) { throw new UnsupportedDriverException("Could not instantiate new WebDriver instance of type " + driverClass + " (" + cause.getMessage(), cause); } }
public WebDriver proxyDriver() { Class<? extends WebDriver> driverClass = webDriverFactory.getClassFor(configuration.getDriverType()); return proxyFor(driverClass, webDriverFactory); }
/** * This method is synchronized because multiple webdriver instances can be created in parallel. * However, they may use common system resources such as ports, so may potentially interfere * with each other. */ protected synchronized WebDriver newWebdriverInstance(final Class<? extends WebDriver> driverClass) { return newWebdriverInstance(driverClass, ""); }
public Class<? extends WebDriver> getClassFor(final SupportedWebDriver driverType) { if (usesSauceLabs() && (driverType != SupportedWebDriver.HTMLUNIT)) { return RemoteWebDriver.class; } else { return driverType.getWebdriverClass(); } }
public void quit() { if (proxyInstanciated()) { try { getDriverInstance().quit(); webDriverFactory.shutdownFixtureServices(); webDriverFactory.releaseTimoutFor(getDriverInstance()); } catch (WebDriverException e) { LOGGER.warn("Error while quitting the driver (" + e.getMessage() + ")"); } proxiedWebDriver = null; } }
public void close() { if (proxyInstanciated()) { //if there is only one window closing it means quitting the web driver if (getDriverInstance().getWindowHandles() != null && getDriverInstance().getWindowHandles().size() == 1){ this.quit(); } else{ getDriverInstance().close(); } webDriverFactory.shutdownFixtureServices(); } }
try { WebDriver driver; if (isARemoteDriver(driverClass) || shouldUseARemoteDriver() || saucelabsUrlIsDefined() || browserStackUrlIsDefined()) { driver = newRemoteDriver(); } else if (isAnAppiumDriver(driverClass)) { driver = appiumDriver(); } else if (isAFirefoxDriver(driverClass)) { driver = firefoxDriver(); } else if (isAnHtmlUnitDriver(driverClass)) { driver = htmlunitDriver(); } else if (isAPhantomJSDriver(driverClass)) { setPhantomJSPathIfNotSet(); driver = phantomJSDriver(); } else if (isAChromeDriver(driverClass)) { driver = chromeDriver(); } else if (isASafariDriver(driverClass)) { driver = safariDriver(); } else if (isAnInternetExplorerDriver(driverClass)) { driver = internetExplorerDriver(); } else if (isAProvidedDriver(driverClass)) { driver = providedDriver(); } else { driver = newDriverInstanceFrom(driverClass); setImplicitTimeoutsIfSpecified(driver); redimensionBrowser(driver);
profile = createNewFirefoxProfile(); } else { profile = getProfileFrom(profileName); firefoxProfileEnhancer.activateNativeEventsFor(profile, shouldEnableNativeEvents()); if (shouldActivateProxy()) { activateProxyFor(profile, firefoxProfileEnhancer); if (refuseUntrustedCertificates()) { profile.setAssumeUntrustedCertificateIssuer(false); profile.setAcceptUntrustedCertificates(false);
public static String getDriverFrom(EnvironmentVariables environmentVariables, String defaultDriver) { String driver = getDriverFrom(environmentVariables); return (driver != null) ? driver : defaultDriver; }
private WebDriver newDriverInstance() { try { if (StepEventBus.getEventBus().isDryRun()) { return new WebDriverStub(); } else { webDriverFactory.setupFixtureServices(); return webDriverFactory.newWebdriverInstance(driverClass, options, environmentVariables); } } catch (UnsupportedDriverException e) { throw new UnsupportedDriverException("Could not instantiate " + driverClass, e); } }