Как включить вспышку в Selenium с безголовым хромом - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь автоматизировать некоторые взаимодействия с нашим флэш-приложением как часть нашего процесса CI. У меня возникают проблемы с включением флеш-памяти при работе Chrome без головы (через xvfb-run) с Selenium Standalone Server. Я много искал, но до сих пор не нашел ничего, что работает.

В настоящее время я использую это, но я открыт для переключения на другие версии, если где-то есть известная рабочая конфигурация ...

  • Selenium Автономный сервер 3.11
  • Chromedriver 2.33
  • Chrome 65.0.3325.181
  • Java 8

Когда я только начал это делать, на странице появлялось предупреждение о том, что мне нужно включить Adobe Flash Player. Я получил «мимо» этого сообщения, используя следующее из https://sqa.stackexchange.com/questions/30312/enable-flash-player-on-chrome-62-while-running-selenium-test:

    ChromeOptions options = new ChromeOptions();
    options.addArguments("headless");

    Map<String, Object> prefs = new HashMap<String, Object>();
    prefs.put("profile.default_content_setting_values.plugins", 1);
    prefs.put("profile.content_settings.plugin_whitelist.adobe-flash-player", 1);
    prefs.put("profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player", 1);
    // Enable Flash for this site
    prefs.put("PluginsAllowedForUrls", "ourapp.com");
    options.setExperimentalOption("prefs", prefs);

    WebDriver driver = new ChromeDriver(options);
    driver.get("ourapp.com");

При загрузке нашего приложения страница теперь дает немного другое сообщение, которое я не смог пройти. Есть ли способ обойти это или есть другой способ включить Flash по умолчанию?

Перезапустите Chrome, чтобы включить Adobe Flash Player

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 02 мая 2018

Спасибо коллеге за то, что он указал на этот пост, указывающий, что плагины не работают в безголовом хроме. https://groups.google.com/a/chromium.org/forum/#!searchin/headless-dev/flash%7Csort:date/headless-dev/mC0REfsA7vo/rKAZdRrCCQAJ

К счастью, в моем случае я уже использовал xvfb в качестве виртуального дисплея, поэтому удаление аргумента «без заголовка» из моих ChromeOptions - это все, что мне было нужно, чтобы все заработало.

EDIT *

Хотя это правда, что мне не нужно было работать в автономном режиме при использовании xvfb, я в итоге обнаружил, что реальным «решением» (скорее обходного пути) моей проблемы является загрузка пользовательского профиля Chrome в мое изображение докера. Это позволило мне установить все необходимые настройки, и никакой код, размещенный в исходном сообщении, не требуется. Очень предпочел бы достичь этого программно, но это, по крайней мере, дает мне то, что мне нужно на данный момент. Подумал, что отправлю на случай, если кто-то еще столкнется с этим в будущем ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...