【问题标题】:Loading unpacked extensions error when running Protractor E2E tests运行 Protractor E2E 测试时加载解压扩展错误
【发布时间】:2018-01-16 08:51:00
【问题描述】:

在最近使用 Chrome 推出了一些政策更新后,我们现在在使用 Selenium Web Driver 运行 Protractor E2E 测试时遇到了解压扩展问题。

错误是:

Failed to load extension from:C:\Users\...\AppData\Local\Temp\scoped_dir9090_11922\internal.

管理员禁止加载解压的扩展。

此内部文件夹是从 internal.zip 解压缩的,包含以下 manifest.json

{
  "key": "MIGfMA0GCSqGSI...",
  "name": "Chrome Automation Extension",
  "version": "1",
  "manifest_version": 2,
  "description": "Exposes extension APIs for automating Chrome",
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
     "tabs", "management", "<all_urls>"
  ]
}

protractor config 文件中,我们尝试在此处禁用扩展,但没有效果:

multiCapabilities: [        
         {
             browserName: 'chrome',
             chromeOptions: {
                 args: [
                     '--disable-extensions', '--disable-plugins', '--start-maximized'
                 ]
             }
         },
    ]

根据this Chrome bug 中的comment 22 on March 31st,他们引入了一个新的Chrome 选项--useAutomationExtension。因此,一旦我让 Protractor 再次在我的盒子上工作,我将尝试如下:

chromeOptions: {
    args: [
          '--disable-extensions', '--disable-plugins', '--start-maximized',
          '--useAutomationExtension=false'
    ]
}

我的主要问题是:

有没有人准确指出解压后的扩展名,以及为了白名单目的与 IT 部门沟通的内容? Here is an old post which addresses this issue.

另外:

  1. 有没有人在protractor.conf.js中成功实现--useAutomationExtension=false选项?

我会随着我一天的进展更新这篇文章,希望能增加一些清晰度。

【问题讨论】:

    标签: selenium-webdriver google-chrome-extension protractor selenium-chromedriver


    【解决方案1】:

    可以通过 protractor.conf.js 中的以下 chromeOptions 解决该错误:

    1.禁用自动化扩展

    chromeOptions: {
      useAutomationExtension: false
    }
    

    2。以无头模式运行 Chrome(无 UI)

    chromeOptions: {
     args: [ "--headless", "--disable-gpu", "--window-size=800,600" ]
    }
    

    哪个更快,但你什么都看不到

    【讨论】:

    • @bob.mazzo:你找到解决方案了吗?请你分享一下。我有类似的问题。
    • 我有同样的问题。我想看看丁目,不想无头奔跑。我该怎么办?
    • 只是第一个位“useAutomationExtension: false”对我有用:)
    • 对我来说,只有“--headless”可以解决问题,useAutomationExtension 似乎没有效果
    • 我有同样的问题,'useAutomationExtension': false 不适合我。有没有其他办法处理?
    【解决方案2】:

    在 2020 年,我在 Ubuntu 20.4 下使用最新版本的 node 和 @angular 看到了同样的问题。

         _                      _                 ____ _     ___
        / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
       / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
      / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
     /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                    |___/
        
    
    Angular CLI: 9.0.7
    Node: 12.18.2
    OS: linux x64
    
    Angular: 9.0.7
    ... animations, cli, common, compiler, compiler-cli, core, forms
    ... language-service, platform-browser, platform-browser-dynamic
    ... router
    Ivy Workspace: Yes
    
    Package                           Version
    -----------------------------------------------------------
    @angular-devkit/architect         0.900.7
    @angular-devkit/build-angular     0.1000.0
    @angular-devkit/build-optimizer   0.1000.0
    @angular-devkit/build-webpack     0.1000.0
    @angular-devkit/core              9.0.7
    @angular-devkit/schematics        9.0.7
    @ngtools/webpack                  10.0.0
    @schematics/angular               9.0.7
    @schematics/update                0.900.7
    rxjs                              6.5.5
    typescript                        3.7.5
    webpack                           4.43.0
    

    上述将“useAutomationExtension: false”放入 protractor.conf.js 的 chromeOptions 部分的说明对我有用。

    但是,'--headless' 不会解决这个问题,因为错误消息虽然有点神秘,但却是在说真话。因此,设置“无头”选项只会导致测试超时,因为错误会显示在弹出窗口中,并且需要单击“确定”按钮才能继续测试。

    除非您有 chromium 的开发通道版本,否则您的浏览器中不会有自动化扩展程序。因此,默认情况下,chrome 驱动程序会尝试使用在非开发通道版本的 chromium 上不可用的扩展。

    可用性:仅限开发频道。了解更多。

    https://developer.chrome.com/extensions/automation

    就个人而言,我认为这很疯狂。驱动程序应在尝试使用此扩展程序之前检查它是否可用。我看过很多关于这个主题的帖子,但似乎没有一篇文章提到了真正的问题。上面的答案将解决问题,但其根源在于chrome驱动程序的假设是扩展始终存在。因此,针对“现实世界的浏览器版本”(大多数用户没有下载 chromium 的开发通道版本)进行测试——这应该是默认设置——是例外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      相关资源
      最近更新 更多