运行 Protractor E2E 测试时加载解压扩展错误

bob*_*zzo 4 google-chrome-extension selenium-chromedriver selenium-webdriver protractor

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

错误是:

Failed to load extension from:C:\Users\...\AppData\Local\Temp\scoped_dir9090_11922\internal.
Run Code Online (Sandbox Code Playgroud)

管理员禁止加载未打包的扩展。

这个内部文件夹是从 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>"
  ]
}
Run Code Online (Sandbox Code Playgroud)

量角器配置文件中,我们尝试在此处禁用扩展,但没有效果:

multiCapabilities: [        
         {
             browserName: 'chrome',
             chromeOptions: {
                 args: [
                     '--disable-extensions', '--disable-plugins', '--start-maximized'
                 ]
             }
         },
    ]
Run Code Online (Sandbox Code Playgroud)

根据3 月 31 日这个 Chrome 错误中的评论 22,他们引入了一个新的 Chrome 选项,--useAutomationExtension. 因此,一旦我让 Protractor 在我的盒子上再次工作,我将尝试如下:

chromeOptions: {
    args: [
          '--disable-extensions', '--disable-plugins', '--start-maximized',
          '--useAutomationExtension=false'
    ]
}
Run Code Online (Sandbox Code Playgroud)

我的主要问题是:

有没有人准确指出解压缩的扩展名,以及为了白名单目的与他们的 IT 部门沟通什么? 这是解决此问题的旧帖子

此外:

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

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

小智 5

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

1.禁用AutomationExtension

chromeOptions: {
  useAutomationExtension: false
}
Run Code Online (Sandbox Code Playgroud)

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

chromeOptions: {
 args: [ "--headless", "--disable-gpu", "--window-size=800,600" ]
}
Run Code Online (Sandbox Code Playgroud)

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