Chromedriver扩展ID与manifest.json中的键不匹配

时间:2014-11-13 01:15:30

标签: google-chrome-extension selenium-webdriver

我正在使用selenium webdriver.js和chromedriver测试chrome扩展。我已经安装了我的扩展程序,但是我已经能够成功启动chrome,但扩展ID是随机生成的,而不是匹配manifest.json的key属性。这使得无法像选项页面那样测试扩展页面。

的manifest.json

// ...
"key": "pjnhffdkdckcagdmfmidafhppbomjdjg", // id from chrome web store
// ...

test.js

var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');

// load unpacked extension
var chromeOptions = new chrome.Options();
chromeOptions.addArguments('load-extension=/path/to/my/extension');

var service = new chrome.ServiceBuilder().build();
var driver = chrome.createDriver(chromeOptions, service)
// this page is not available T_T
driver.get('chrome-extension://pjnhffdkdckcagdmfmidafhppbomjdjg/html/options.html');

我的假设是扩展ID与密钥匹配(从Web商店安装时也是如此),但这似乎不适用于通过chromedriver加载扩展。有没有办法让加载的扩展具有一致的ID?或者我应该采取另一种方法?

2 个答案:

答案 0 :(得分:2)

清单key值不是扩展ID。您必须从Web商店安装扩展,并查看桌面上的manifest.json文件。在该文件中使用它们key值。 documentation描述了如何查找安装目录。

答案 1 :(得分:0)

我遇到了同样的问题。 只需从 crx 文件加载您的扩展程序,您就会获得一致的 ID。