@Override boolean supports(Config config, Browser browser) { return browser.isChrome(); }
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(); } } }
@Override boolean supports(Config config, Browser browser) { return browser.isFirefox(); }
public boolean supportsModalDialogs() { return !isPhantomjs() && !isSafari(); } }
public boolean isHeadless() { return isHtmlUnit() || isPhantomjs() || headless; }
private Capabilities getHeadlessCapabilities(Config config, Browser browser) { log.info("Starting in headless mode"); if (browser.isChrome()) { ChromeOptions options = new ChromeOptions(); options.setHeadless(config.headless()); return options; } else if (browser.isFirefox()) { FirefoxOptions options = new FirefoxOptions(); options.setHeadless(config.headless()); return options; } else { log.warning("Headless mode on remote server is only supported for Chrome/Firefox, setting will be ignored."); } return new DesiredCapabilities(); }
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 boolean supports(Config config, Browser browser) { return browser.isHtmlUnit(); }
@Override boolean supports(Config config, Browser browser) { return browser.isIE(); }
@Override boolean supports(Config config, Browser browser) { return browser.isJBrowser(); }
@Override boolean supports(Config config, Browser browser) { return browser.isEdge(); }
@Override boolean supports(Config config, Browser browser) { return browser.isLegacyFirefox(); }
@Override boolean supports(Config config, Browser browser) { return browser.isPhantomjs(); }
@Override boolean supports(Config config, Browser browser) { return browser.isOpera(); }
Capabilities getBrowserBinaryCapabilities(Config config, Browser browser) { log.info("Using browser binary: " + config.browserBinary()); if (browser.isChrome()) { ChromeOptions options = new ChromeOptions(); options.setBinary(config.browserBinary()); return options; } else if (browser.isFirefox()) { FirefoxOptions options = new FirefoxOptions(); options.setBinary(config.browserBinary()); return options; } else { log.warning("Changing browser binary on remote server is only supported for Chrome/Firefox, setting will be ignored."); } return new DesiredCapabilities(); }
@Override public Browser browser() { return new Browser(config.browser(), config.headless()); }
private boolean supportsJavascriptAttributes() { return driver.supportsJavascript() && !driver.browser().isHtmlUnit(); }
@Override public String execute(SelenideElement proxy, WebElementSource locator, Object[] args) { WebElement element = locator.getWebElement(); if (locator.driver().browser().isIE()) { return element.getAttribute("innerText"); } return element.getAttribute("textContent"); } }
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); } }