Не удалось загрузить расширение из scoped_dir6312_32763 / internal. Загрузка распакованных расширений отключена администратором с помощью ChromeDriver Selenium - PullRequest
0 голосов
/ 08 февраля 2019

Я создал проект, используя vue-cli 3, который автоматически настраивал для меня тесты e2ed.Когда я пытаюсь запустить тесты, я получаю всплывающее окно с Chrome, сообщающее, что «Загрузка распакованных расширений отключена администратором».

Это, похоже, распространенная проблема, одно из предложенных решений в других местах - это

ChromeOptions o = new ChromeOptions();
o.addArguments("disable-extensions");
o.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(o);

Теперь это Java-код, но я предполагаю, что есть способ добиться того же в проекте vue.js.Однако я понятия не имею, куда поместить эту конфигурацию.

1 Ответ

0 голосов
/ 08 февраля 2019

Это всплывающее окно:

extension_error

с сообщением об ошибке как ...

Error Loading Extension
Failed to load extension from: 'C:\Users\user_name\AppData\Local\Temp\scoped_dir6312_32763\internal'. Loading of unpacked extensions is disabled by the administrator.
OK

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


Согласно обсуждению Не удалось загрузить расширение из: ... Загрузка распакованных расширений отключена администратором ChromeDriver использует расширение автоматизации Chrome для автоматизации различных функций, таких как определение размера окна, позиционирование окна и т. Д.

Не удалось загрузить расширение. всплывающее окноозначает, что это расширение не было загружено.Если вы вручную закроете всплывающее окно, браузер будет работать в обычном режиме, и команды ChromeDriver продолжат работать должным образом.Но в этом случае, если вы попытаетесь выполнить команды изменения размера окна или изменения положения окна, будет выдано сообщение об ошибке как unknown error: cannot get automation extension.


Фон

До ChromeDriver v2.28 всякий раз, когда политика организации администрирования запрещала расширения, чтобы обойти ограничение, пользователи использовали аргумент disable-extensions следующим образом:

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
WebDriver driver = new ChromeDriver(options);

, и он работал идеально.

ChromeDriver v2.28 и далее, всякий раз, когда тест * проходит флаг disable-extensions, ChromeDriver неявно передает disable-extensions-except флаг, который в свою очередь загружает Расширение автоматизации Chrome .Это расширение помогает Chromedriver выполнять операции изменения размера окна и изменения положения окна.

Таким образом, если ваша политика администратора организации блокирует расширения, отображается всплывающее окно Не удалось загрузить расширение из: ... Загрузка распакованных расширений - ожидаемое поведение.

Этопроблема зависела от поддержки Selenium для безголовых .


Обход

В качестве альтернативы вы можете установить useAutomationExtensionвозможность false выглядит следующим образом:

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

Эта функция inturn поможет не загружать Расширение Chrome Automation и Failed to load extension всплывающее окно не появится.Но вы не сможете выполнять какие-либо операции изменения размера / позиционирования окна без расширения автоматизации Chrome .

Теперь, Поддержка Selenium для поддержки безголовых ChromeDriver больше не будет нуждаться в этом расширении, и вы не должны были видеть эту ошибку / всплывающее окно.

Решение

Самое простое решение - использовать последнюю версию ChromeDriver и Chrome комбинация из любого из следующих:

  • Если вы используете Chrome версии 73 , пожалуйста, скачайте ChromeDriver 73.0.3683.20
  • Если вы используете Chrome версии 72 , пожалуйста, скачайте ChromeDriver 2.46 или ChromeDriver 72.0.3626.69
  • Если выиспользуете Chrome версии 71 , пожалуйста, скачайте ChromeDriver 2.46 или ChromeDriver 71.0.3578.137
  • Для более старой версии Chrome, пожалуйста, посмотрите это обсуждение .

альтернатива

Некоторые другие альтернативы:

  • Добавление ключа реестра ExtensionInstallWhitelist в белый список
  • Удаление ключа реестра ExtensionInstallBlacklist, содержащего строковый ключ 1 со значением*
...