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; }