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