Безголовое тестирование Chrome

#selenium #phantomjs #selenium-chromedriver #headless

#selenium #phantomjs #selenium-chromedriver #без головы

Вопрос:

Я хочу использовать chromedriver без головы вместо phantomjs. Для phantomjs я смог предоставить ssl-сертификат и пути к ключам в качестве аргументов командной строки. как показано ниже. Как мне предоставить пути к сертификату и ключу в качестве аргументов командной строки для безголового chromedriver?

 ImmutableMap<String, String> commandLineArguments = ImmutableMap.<String, String>builder()                        
                                                                                .put("ssl-protocol", "any")                                                           
                                                                                .put("ssl-client-certificate-file", certificatePath)
                                                                                .put("ssl-client-key-file", certificateKeyPath)
                                                                                .put("ssl-client-key-passphrase", "webpass").build();

                                            String[] params = commandLineArguments.entrySet().stream()
                                                                .map(e -> String.format("--%s=%s", e.getKey(), e.getValue()))
                                                                .collect(Collectors.toList())
                                                                .toArray(new String[0]);

                                            cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
                                            cap.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, params);
  

Ответ №1:

 WebDriver driver;
case WebDriverType.CHROME:
                    WebDriverManager.chromedriver().setup();
                    ChromeOptions cOptions = new ChromeOptions();
                    cOptions.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
                    cOptions.setAcceptInsecureCerts(true);
                    // this isthe option to run chrome in headless mode
                    cOptions.setHeadless(true);
                    cOptions.addArguments("--ignore-certificate-errors");
                    cOptions.addArguments("disable-infobars");
                    driver = new ChromeDriver(cOptions);
                    break;
  

Вы также можете пройти этот путь, чтобы запустить chrome в безголовом режиме.

Комментарии:

1. Как мне передать путь к сертификату и файлу ключа? Для веб-сайта требуется SSL-сертификат.

2. Параметры ChromeOptions = новые ChromeOptions(); параметры.setExperimentalOption(«useAutomationExtension», false); параметры.addArguments(«—headless», «—window-size=1920,1200», «—ignore-certificate-errors»); желаемые возможности crcapabilities = желаемые возможности.chrome(); crcapabilities.setCapability(ChromeOptions. ВОЗМОЖНОСТИ, параметры); crcapabilities.setCapability(тип CapabilityType. ACCEPT_SSL_CERTS, true); crcapabilities.setCapability(CapabilityType. ACCEPT_INSECURE_CERTS, true);