Как отключить ВСЕ расширения Chrome с помощью chromedriver - PullRequest
1 голос
/ 23 мая 2019

После обновления до chromedriver 74 заметил странное поведение расширений в Windows.Можно ли отключить ВСЕ расширения?

  1. Запустить chromedriver
chromedriver --log-level=ALL
Создать сеанс с расширениями ОТКЛЮЧЕНО
curl -d '{"desiredCapabilities":{"browserName":"chrome","goog:chromeOptions":{"args":["--disable-extensions"]}}}' http://localhost:9515/session

Загружено некоторое расширение инструмента dev *

[1558606783.990] [INFO]: запуск Chrome: "C: \ ProgramФайлы (x86) \ Google \ Chrome \ Application \ chrome.exe "--disable-background-network --disable-client-side-phishing-обнаружение --disable-default-apps --disable-extensions --disable-extensions-except = "C: \ Users \ user \ AppData \ Local \ Temp \ scoped_dir19964_411 \ internal" --disable-повесить монитор --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-автоматизация --enable-blink-features = ShadowDOMV0 --enable-logging --force-fieldtrials = SiteIsolationExtensions / Control --ignore-certificate-errors --log-level = 0 -no-first-run --password-store = basic --remote-debugging-port = 0 --test-type = webdriver --use-mock-keychain --user-data-dir = "C: \ Users \ user\ AppData \ Local \ Temp \ scoped_dir19964_22650 "данные:,

Примечание

- отключить-расширения-исключение =" C: \ Users \ user \ AppData \Local \ Temp \ scoped_dir19964_411 \ internal "

Есть ли способ от него избавиться?Не нашел никаких подсказок в документах по хромедрайверам, они крайне отрывочны.

1 Ответ

0 голосов
/ 24 мая 2019

TL; DR

Установите для chromeOptions.useAutomationExtension значение false, это предотвратит внедрение Chrome Automation Extension

{
  "desiredCapabilities": {
    "browserName": "chrome",
    "goog:chromeOptions": {
      "useAutomationExtension": false,
      "args": [
        "--disable-extensions"
      ]
    }
  }
}

Длинная версия

Флаг расширения автоматизации не упоминается в chromedriver документах http://chromedriver.chromium.org/capabilities,, но его можно отследить в исходном коде для текущей версии (75.0.)

    parser_map["useAutomationExtension"] =
        base::Bind(&ParseBoolean, &capabilities->use_automation_extension);
    status = internal::ProcessExtensions(
        capabilities.extensions, extension_dir->GetPath(),
        capabilities.use_automation_extension, &switches, extension_bg_pages);
  if (include_automation_extension) {
    ...
    if (switches->HasSwitch("disable-extensions")) {
      UpdateExtensionSwitch(switches, "disable-extensions-except",
                            automation_extension.value());

Как упомянуто в 54594305 Java-код, использующий драйвер селена, будет

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("useAutomationExtension", false);
...