无法从scoped_dir6312_32763 / internal加载扩展。管理员使用ChromeDriver Selenium禁用了未打包扩展的加载

时间:2019-02-08 14:16:13

标签: java selenium google-chrome selenium-chromedriver chrome-automation-extension

我使用vue-cli 3创建了一个项目,该项目会自动为我设置e2ed测试。当我尝试运行测试时,从chrome浏览器弹出一个对话框,告诉我“管理员已禁用解压缩扩展的加载”。

这似乎是一个普遍的问题,elsewhere提供的一种解决方案是

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

现在这是Java代码,但是我认为在vue.js项目中可以实现相同的目的。但是,我不知道将此配置放在何处。

1 个答案:

答案 0 :(得分:2)

此弹出窗口:

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

...表示尚未加载扩展程序,因为管理员已将其禁用。


根据讨论Failed to load extention from: ... Loading of unpacked extensions is disabled by the administrator 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 support for headless


解决

或者,您可以将 useAutomationExtension 功能设置为false,如下所示:

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

此功能将有助于不加载 Chrome自动化扩展,并且不会显示 Failed to load extension 弹出窗口。但是如果没有 Chrome自动化扩展程序,您将无法执行任何窗口大小调整/定位操作。

现在,Selenium support for headless被解决的 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,请参阅此discussion

替代

其他一些选择是:

  • 注册表项 ExtensionInstallWhitelist添加到白名单
  • 删除注册表项 ExtensionInstallBlacklist,其中包含具有值 * 的字符串键 1