我正在使用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?或者我应该采取另一种方法?
答案 0 :(得分:2)
清单key
值不是扩展ID。您必须从Web商店安装扩展,并查看桌面上的manifest.json文件。在该文件中使用它们key
值。 documentation描述了如何查找安装目录。
答案 1 :(得分:0)
我遇到了同样的问题。 只需从 crx 文件加载您的扩展程序,您就会获得一致的 ID。