@Override WebDriver create(Config config, Proxy proxy) { return createInstanceOf(config.browser(), config, proxy); } }
public WebDriver createWebDriver(Config config, Proxy proxy) { log.config("browser=" + config.browser()); log.config("browser.version=" + config.browserVersion()); log.config("remote=" + config.remote()); log.config("browserSize=" + config.browserSize()); log.config("startMaximized=" + config.startMaximized()); Browser browser = new Browser(config.browser(), config.headless()); if (config.driverManagerEnabled() && config.remote() == null) { webDriverBinaryManager.setupBinaryPath(browser); } WebDriver webdriver = factories.stream() .filter(factory -> factory.supports(config, browser)) .findAny() .map(driverFactory -> driverFactory.create(config, proxy)) .orElseGet(() -> new DefaultDriverFactory().create(config, proxy)); webdriver = browserResizer.adjustBrowserSize(config, browser, webdriver); webdriver = browserResizer.adjustBrowserPosition(config, webdriver); logBrowserVersion(webdriver); log.info("Selenide v. " + SelenideDriver.class.getPackage().getImplementationVersion()); logSeleniumInfo(config); return webdriver; }
LazyDriver(Config config, Proxy userProvidedProxy, List<WebDriverEventListener> listeners, WebDriverFactory factory, BrowserHealthChecker browserHealthChecker) { this.config = config; this.browser = new Browser(config.browser(), config.headless()); this.userProvidedProxy = userProvidedProxy; this.listeners.addAll(listeners); this.factory = factory; this.browserHealthChecker = browserHealthChecker; }
@Override public Browser browser() { return new Browser(config.browser(), config.headless()); }
private WebDriver createHtmlUnitDriver(Config config, Proxy proxy) { DesiredCapabilities capabilities = DesiredCapabilities.htmlUnit(); capabilities.merge(createCommonCapabilities(config, proxy)); capabilities.setCapability(HtmlUnitDriver.INVALIDSELECTIONERROR, true); capabilities.setCapability(HtmlUnitDriver.INVALIDXPATHERROR, false); if (config.browser().indexOf(':') > -1) { // Use constants BrowserType.IE, BrowserType.FIREFOX, BrowserType.CHROME etc. String emulatedBrowser = config.browser().replaceFirst("htmlunit:(.*)", "$1"); capabilities.setVersion(emulatedBrowser); } return new HtmlUnitDriver(capabilities); } }
private WebDriver createRemoteDriver(Config config, Proxy proxy) { try { DesiredCapabilities capabilities = getDriverCapabilities(config, new Browser(config.browser(), false), proxy); RemoteWebDriver webDriver = new RemoteWebDriver(new URL(config.remote()), capabilities); webDriver.setFileDetector(new LocalFileDetector()); return webDriver; } catch (MalformedURLException e) { throw new IllegalArgumentException("Invalid 'remote' parameter: " + config.remote(), e); } }
String getBrowserNameForGrid(Config config, Browser browser) { if (browser.isLegacyFirefox()) { return BrowserType.FIREFOX; } else if (browser.isIE()) { return BrowserType.IE; } else if (browser.isEdge()) { return BrowserType.EDGE; } else if (browser.isOpera()) { return BrowserType.OPERA_BLINK; } else { return config.browser(); } } }