Selenium ChromeDriver无法启动加载扩展程序的Google Chrome

时间:2013-08-30 22:48:35

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

我正在使用Selenium 2.0为我的Google Chrome扩展程序创建自动化测试:

  1. WebdriverJS + NodeJS
  2. ChromeDriver
  3. MacOSX 10.8.4
  4. 首先,我也想测试安装过程,但是当使用Selenium弹出安装对话框时,似乎无法单击“添加”按钮。 (My other SO question about this)。

    现在,我改变了我的计划。我希望在安装了扩展程序的情况下启动Chrome,而不是将扩展程序作为测试驱动器的一部分进行安装。但我没有成功。

    请查看以下代码:

    var webdriver = require('selenium-webdriver'),
        chrome = require('selenium-webdriver/chrome');
    
    var o = new chrome.Options();
    o.addExtensions(['extensions/chrome/chrome_extension.zip']); // crx file is just a zip file
    var s = new chrome.ServiceBuilder('bin/chromedriver').build();
    var driver = chrome.createDriver(o, s)
    

    当我运行上面的代码时,我收到以下错误: enter image description here

    我注意到ChromeDriver在打开Chrome时加载了名为“Chrome Automation Extension 1”的Chrome扩展程序,因此必须有一种方法可以加载另一个扩展程序,或者直接从带有应用程序ID的Webstore加载,或加载从本地机器包装或拆包。

    非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

确保“manifest.json”位于zip文件的根目录下。不小心压缩扩展名目录而不是扩展名文件是一个常见的错误。

使用zip

cd path/to/extension
zip -ur ../chrome_extension.zip *

使用7-zip

cd path/to/extension
7z u -tzip ../chrome-extension.zip *