Отключить расширения режима разработчика в Chrome

Начиная с последней версии chrome (34.0.1847.116) на прошлой неделе, я получаю "Отключить расширения режима разработчика" при запуске автоматических тестов с использованием watir-webdriver.

Это похоже на оскорбительное расширение, но мне не имеет смысла, что это потенциально опасное расширение, учитывая его использование хромированным рекордером.

Любой, кто нашел исправление для этого, так как я не могу вернуться к предыдущей версии или найти установщика для более старой версии, чтобы вернуться к ней, и это ведет к хаосу с моими тестами.

enter image description here

enter image description here

Ответ 1

При создании драйвера chrome используйте параметр, чтобы отключить его. Его работа без каких-либо расширений.

Используйте следующий фрагмент кода

ChromeOptions options = new ChromeOptions();
options.addArguments("chrome.switches","--disable-extensions");
System.setProperty("webdriver.chrome.driver",(System.getProperty("user.dir") + "//src//test//resources//chromedriver_new.exe"));
driver = new ChromeDriver(options);

Ответ 2

Официальный способ отключения всплывающего окна выглядит следующим образом:

  1. Упакуйте свое расширение (chrome://extensions/, отметьте "Режим разработчика", нажмите "Упаковать расширение...") и установите его путем перетаскивания файла .crx на страницу chrome://extensions.

    (Вы получите всплывающее окно "Неподдерживаемые расширения отключены", если вы попытаетесь перезапустить Chrome на этом этапе)

Тогда для Win7/8:

  1. Загрузите шаблоны групповой политики Chrome с:
    http://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip
  2. Скопируйте [zip]\windows\admx\chrome.admx в c:\windows\policydefinitions
  3. Скопируйте [zip]\windows\admx\[yourlanguage]\chrome.adml в
    c:\windows\policydefinitions\[yourlanguage]\chrome.adml (не c:\windows\[yourlanguage])
  4. В Chrome перейдите на страницу "Расширения" (chrome://extensions)
  5. Установите флажок Режим разработчика вверху
  6. Прокрутите список отключенных расширений и запишите идентификаторы расширений, которые вы хотите включить. LogMeIn, например, является ID: nmgnihglilniboicepgjclfiageofdfj
  7. Нажмите Start > Run и введите gpedit.msc <ENTER>
  8. Разверните User Configuration > Administrative Templates > Google Chrome > Extensions
  9. Дважды щелкните, чтобы открыть Configure extension installation whitelist политики Configure extension installation whitelist
  10. Выберите Enabled, затем нажмите Show...
  11. В списке введите идентификаторы добавочных номеров, которые вы отметили на шаге 7.
  12. Нажмите OK и перезапустите Chrome.

Это!

По состоянию на июль 2018 года этот подход больше не работает: похоже, Google прекратил соблюдать "белый список"

РЕДАКТИРОВАТЬ: По состоянию на 16.10.2008, этот подход работает. (Версия Chrome 69.0.3497.100 (официальная сборка) (64-разрядная версия))

1.Временно включите режим разработчика в chrome://extensions/

2. Удалите расширение, которое вы установили (точнее, расширение, вызывающее всплывающее окно), используя "Загрузить распакованный".

3.Нажмите на расширение пакета и введите корневой каталог файлов (поместите файлы расширения в одну папку/одну папку на расширение, вызывающее ошибку), не вводите файл закрытого ключа, если у вас его нет.

4. Нажмите расширение пакета. Файлы с расширением .crx и .pem будут созданы рядом с корневым каталогом расширения. Установите расширение, используя файл crx, и сохраните файл pem в безопасности (если вы удалите его или что-то пойдет не так, вы всегда можете перепаковать расширение).

5. Затем скопируйте идентификатор установленного расширения crx в белый список и перезапустите Chrome.

Всплывающее окно должно исчезнуть.

Ответ 3

От май 2015 Chrome beta/dev/canary в Windows (см. строки 75-78) всегда отображается это предупреждение.

  • Я только что запустил chrome.dll(dev-канал, 32-разрядный) с использованием демонстрационной версии hiew32: запустите его, переключитесь в шестнадцатеричный вид (введите ключ), найдите ExtensionDeveloperModeWarning (F7), затем нажмите F6, чтобы найти ссылающийся код, перейдите в ближайшую строку INC EAX, за которой следует RETN, нажмите F3 для редактирования, введите 90 вместо 40, который будет отображаться как NOP (no-op), save (F9).

  • Упрощенный метод, найденный @Gsx, который также работает для 64-разрядного браузера Chrome:

    • запустите демон hiew32 (в режиме администратора) и откройте Chrome.dll
    • переключатель в шестнадцатеричный вид (Enter)
    • поиск ExtensionDeveloperModeWarning (F7)
    • нажмите F3, чтобы отредактировать и заменить первую букву "E" любым другим символом
    • сохранить (F9).
  • patch.BAT script

Конечно, это будет продолжаться только до следующего обновления, чтобы любой, кто в нем нуждается, часто мог написать авто-патчер или пусковую установку, которая исправляет DLL в памяти.

Ответ 4

Не может быть отключен. Цитата: "Извините, мы знаем, что это раздражает, но вы авторы вредоносных программ..."

Ваши единственные варианты: адаптировать ваши автоматизированные тесты к этому новому поведению или загрузить нарушающий сценарий в Chrome Web Store (что можно сделать "в списке").

Ответ 5

У меня была одна и та же проблема, и я попробовал следующее:

  • Установите распакованное расширение
  • Отключить режим разработчика
  • Перетащите файл .crx из упакованного расширения
  • Закройте Chrome, а затем снова откройте его.

Несколько замечаний:

  • Файл .pem должен храниться с .crx
  • Не помещайте .crx и .pem в папку распакованного расширения.

Когда я снова открыл Chrome, у меня появилось всплывающее окно, в котором рассказывалось о новом упакованном расширении, поэтому я перезагрузил Chrome, чтобы посмотреть, будет ли он делать это снова, и это не так.

Я надеюсь, что это решение сработало!

Ответ 6

Установка отключенных расширений для меня не работала. Вместо этого я использовал класс Robot, чтобы нажать кнопку "Отмена".

import java.awt.Robot;
import java.awt.event.InputEvent;

public class kiosk {
  public static void main(String[] args) {
    // As long as you don't move the Chrome window, the Cancel button should appear here.
    int x = 410;
    int y = 187;

    try {
      Thread.sleep(7000);// can also use robot.setAutoDelay(500);
      Robot robot = new Robot();
      robot.mouseMove(x, y);
      robot.mousePress(InputEvent.BUTTON1_MASK);
      robot.mouseRelease(InputEvent.BUTTON1_MASK);
      Thread.sleep(3000);// can also use robot.setAutoDelay(500);
    } catch (AWTException e) {
      System.err.println("Error clicking Cancel.");
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
}

Ответ 7

(В ответ Антонию Хэтчински)

Это текущий, буквально официальный способ установки политик Chrome: https://support.google.com/chrome/a/answer/187202?hl=en

Шаблоны Windows и Linux, а также общая политика документацию для всех операционных систем можно найти здесь: https://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip (Zip файл шаблонов и документации Google Chrome)

Инструкции для Windows (с моими дополнениями):

Откройте загруженный шаблон ADM или ADMX:

  • Извлеките "chrome.adm" на выбранном вами языке из ранее загруженного "policy_templates.zip" (например, "policy_templates.zip\windows\adm\en-US\chrome.adm" ).
  • Перейдите в меню "Пуск" > "Выполнить": gpedit.msc.
  • Перейдите к политике локального компьютерa > Конфигурация компьютера/пользователя > Административные шаблоны.
  • Щелкните правой кнопкой мыши "Административные шаблоны" и выберите "Добавить/удалить шаблоны".
  • Добавьте диалоговое окно "chrome.adm".
  • После этого в разделе "Административные шаблоны" появятся классические шаблоны административных шаблонов (ADM)/Google/Google Chrome.
  • Независимо от того, добавляете ли вы шаблон в разделе "Конфигурация компьютера" или "Конфигурация пользователя", настройки будут отображаться в обоих местах, поэтому вы можете настроить Chrome на компьютере или на уровне пользователя.

Как только вы закончите с этим, перейдите к шагу 5 из ответа Антони Хэцкинса. После того, как вы добавили идентификаторы расширений, вы можете проверить, работает ли политика в Chrome, открыв chrome://policy (выполните поиск ExtensionInstallWhitelist).

Ответ 8

Для тех, кто использует WebdriverIO, вы можете отключить расширения, создав свой клиент следующим образом:

var driver = require('webdriverio');
var client = driver.remote({
    desiredCapabilities: {
        browserName: 'chrome',
        chromeOptions: {
            args: [
                'disable-extensions'
            ]
        }
    }
});

Ответ 9

Я не уверен, что это все еще проблема для людей или нет. Тем не менее, я прочитал этот пост и несколько других и, наконец, играл с этим и смог заставить его работать на С#, используя этот код. Я получил все это из этой публикации и возможных сообщений, связанных с этим сообщением.

Я надеюсь, что это поможет, он, безусловно, решил мои проблемы в консольном приложении С#.

Использование версии 52.0.2743.116 м Chrome Драйвер сервера Selenium 2.9

        var chromeService = ChromeDriverService.CreateDefaultService(@"C:\Selenium\InstalledServerDrivers\");
        var options = new ChromeOptions();

        options.AddArgument("--disable-extensions");                                      
        IWebDriver driver = new ChromeDriver(chromeService, options);

        driver.Url = "http://www.google.com/";

Ответ 10

Ruby-based watir-webdriver использует что-то вроде этого:

browser=Watir::Browser.new( :chrome, :switches => %w[ --disable-extensions ] )

Ответ 11

Для AngularJS и транспортир: (здесь не объяснено)

Измените conf.js, добавьте раздел capabilities:

exports.config = {
    ...
    capabilities: {
        'browserName': 'chrome',
        'chromeOptions': {
            // Prevent warning about dev tools, which breaks some tests, in Windows at least.
            'args': ['--disable-extensions']
        }
    },

(на основе этого ответа: fooobar.com/questions/55186/... о чем-то связанном, но другом)

Ответ 12

1) Дождитесь появления всплывающего окна.

2) Откройте новую вкладку.

3) Закройте новую вкладку. Всплывающее окно исчезнет с исходной вкладки.

Небольшое расширение Chrome может автоматизировать эти шаги:

manifest.json

{
  "name": "Open and close tab",
  "description": "After Chrome starts, open and close a new tab.",
  "version": "1.0",
  "manifest_version": 2,
  "permissions": ["tabs"],
  "background": {
    "scripts": ["background.js"], 
    "persistent": false
  }
}

background.js

// This runs when Chrome starts up
chrome.runtime.onStartup.addListener(function() {

  // Execute the inner function after a few seconds
  setTimeout(function() {

    // Open new tab
    chrome.tabs.create({url: "about:blank"});

    // Get tab ID of newly opened tab, then close the tab
    chrome.tabs.query({'currentWindow': true}, function(tabs) {
      var newTabId = tabs[1].id;
      chrome.tabs.remove(newTabId);
    });

  }, 5000);

});

Установив это расширение, запустите Chrome и сразу же переключайте приложения, прежде чем появится всплывающее окно... Через несколько секунд всплывающее окно исчезнет, и вы не увидите его, когда вернетесь в Chrome.

Ответ 13

К сожалению, я не могу автоматизировать установку его в режим разработчика из-за ограничений по ширине с помощью браузера в режиме iphone. На данный момент я нашел опасное обходное решение, установите версию канала chrome. У него нет предупреждающего сообщения, но я уверен, что это вызовет у меня больше проблем в долгосрочной перспективе при возникновении проблем. Еще, надеюсь, дайте мне несколько дней, чтобы найти обходной путь.

Ответ 14

Используя селен с Python, вы запускаете драйвер с отключенными расширениями следующим образом:

from selenium import webdriver
options = webdriver.chrome.options.Options()
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(chrome_options=options)

Всплывающее окно "Отключить расширения режима разработчика" не появится.