Это всплывающее окно:
с сообщением об ошибке как ...
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 со значением*