ChromeOptions createChromeOptions(Config config, Proxy proxy) { ChromeOptions options = new ChromeOptions(); options.setHeadless(config.headless()); if (!config.browserBinary().isEmpty()) { log.info("Using browser binary: " + config.browserBinary()); options.setBinary(config.browserBinary()); } options.merge(createCommonCapabilities(config, proxy)); options = transferChromeOptionsFromSystemProperties(options); log.config("Chrome options:" + options.toString()); return options; }
@Override public WebDriver getWebDriver(Capabilities capabilities) { final ChromeOptions chromeOptions; if (capabilities instanceof ChromeOptions) { chromeOptions = (ChromeOptions) capabilities; } else { chromeOptions = new ChromeOptions().merge(capabilities); } return new ChromeDriver(chromeOptions); }
/** * Merges the {@link DesiredCapabilities} into the currently configured {@link ChromeOptions} that will * be used in the driver being built. * * @param desiredCapabilities The desired capabilities object. See https://sites.google.com/a/chromium.org/chromedriver/capabilities * @return The current builder instance, for additional configuration, if needed. * @since 0.18.0 */ @Override public ChromeDriverBuilder withCapabilities(DesiredCapabilities desiredCapabilities) { getInitializedChromeOptions().merge(desiredCapabilities); return super.withCapabilities(desiredCapabilities); }
/** * Merges the {@link DesiredCapabilities} into the currently configured {@link ChromeOptions} that will * be used in the driver being built. * * @param desiredCapabilities The desired capabilities object. See https://sites.google.com/a/chromium.org/chromedriver/capabilities * @return The current builder instance, for additional configuration, if needed. * @since 0.18.0 */ @Override public ChromeDriverBuilder withCapabilities(DesiredCapabilities desiredCapabilities) { getInitializedChromeOptions().merge(desiredCapabilities); return super.withCapabilities(desiredCapabilities); }
protected static WebDriver getChromeDriver(DesiredCapabilities capabilities) { ChromeOptions chromeOptions = new ChromeOptions().merge(capabilities); return new ChromeDriver(chromeOptions); }
/** * Устанавливает ChromeOptions для запуска google chrome эмулирующего работу мобильного устройства (по умолчанию nexus 5) * Название мобильного устройства (device) может быть задано через системные переменные * *@return ChromeOptions */ private ChromeOptions getMobileChromeOptions(DesiredCapabilities capabilities) { log.info("---------------run CustomMobileDriver---------------------"); String mobileDeviceName = loadSystemPropertyOrDefault("device", "Nexus 5"); ChromeOptions chromeOptions = new ChromeOptions().addArguments("disable-extensions", "test-type", "no-default-browser-check", "ignore-certificate-errors"); Map<String, String> mobileEmulation = new HashMap<>(); mobileEmulation.put("deviceName", mobileDeviceName); chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation); chromeOptions.merge(capabilities); return chromeOptions; }
@Override public WebDriver create(Capabilities capabilities, Properties properties) { return new ChromeDriver(new ChromeOptions().merge(capabilities)); } },
@Override public WebDriver create(Capabilities capabilities, Properties properties) { return new ChromeDriver(new ChromeOptions().merge(capabilities)); } },
@Override public void resolve() { try { Optional<Object> testInstance = context.getTestInstance(); Optional<Capabilities> capabilities = annotationsReader .getCapabilities(parameter, testInstance); ChromeOptions chromeOptions = (ChromeOptions) getOptions(parameter, testInstance); if (capabilities.isPresent()) { chromeOptions.merge(capabilities.get()); } object = new ChromeDriver(chromeOptions); } catch (Exception e) { handleException(e); } }
/** * Задает options для запуска Chrome драйвера * options можно передавать, как системную переменную, например -Doptions=--load-extension=my-custom-extension * @return ChromeOptions */ private ChromeOptions getChromeDriverOptions(DesiredCapabilities capabilities) { log.info("---------------Chrome Driver---------------------"); ChromeOptions chromeOptions = !options[0].equals("") ? new ChromeOptions().addArguments(options) : new ChromeOptions(); chromeOptions.setCapability(CapabilityType.BROWSER_VERSION, loadSystemPropertyOrDefault(CapabilityType.BROWSER_VERSION, VERSION_LATEST)); chromeOptions.setHeadless(getHeadless()); chromeOptions.merge(capabilities); return chromeOptions; }
@Override public WebDriver newInstance(DriverOptions driverOptions) { ChromeDriverService service = setupBuilder(new ChromeDriverService.Builder(), driverOptions, CHROMEDRIVER).build(); ChromeOptions options = newChromeOptions(driverOptions); options.merge(driverOptions.getCapabilities()); ChromeDriver driver = new ChromeDriver(service, options); setInitialWindowSize(driver, driverOptions); return driver; } }
@Override public WebDriver create(WebDriverFactory webDriverFactory, DesiredCapabilities desiredCapabilities) { ChromeDriverServiceProperties serviceProperties = webDriverFactory.driverServices == null ? null : webDriverFactory.driverServices.getChrome(); DriverService driverService = serviceProperties == null ? null : serviceProperties.getDriverService(); return driverService == null ? new ChromeDriver(new ChromeOptions().merge(desiredCapabilities)) : new RemoteWebDriver(driverService.getUrl(), desiredCapabilities); } },
static Function<DesiredCapabilities, Result<WebDriver>> localWebDriverInstance() { return dc -> { final String browserType = dc.getBrowserName(); DriverPathLoader.loadDriverPaths(); return match( matchCase(() -> success(new ChromeDriver(new ChromeOptions().merge(dc)))), matchCase(browserType::isEmpty, () -> failure("browserType should not be empty")), // matchCase(() -> browserType.equals(BrowserType.PHANTOMJS), () -> success(new PhantomJSDriver())), matchCase(() -> browserType.equals(BrowserType.FIREFOX), () -> success(new FirefoxDriver())), matchCase(() -> browserType.equals(BrowserType.CHROME), () -> success(new ChromeDriver(new ChromeOptions().merge(dc)))), matchCase(() -> browserType.equals(BrowserType.SAFARI), () -> success(new SafariDriver())), matchCase(() -> browserType.equals(BrowserType.OPERA), () -> success(new OperaDriver())), matchCase(() -> browserType.equals(BrowserType.OPERA_BLINK), () -> success(new OperaDriver())), matchCase(() -> browserType.equals(BrowserType.IE), () -> success(new InternetExplorerDriver())) ); }; }
ChromeOptions.class); if (optionsFromAnnotatedField != null) { chromeOptions = optionsFromAnnotatedField.merge(chromeOptions);
chromeOptions.addArguments("--profile-directory=" + profileDirName); chromeOptions.merge(cap);