我正在使用selenium webdriver.js和chromedriver测试一个chrome扩展。安装了扩展后,我成功地启动了chrome,但是扩展id是随机生成的,而不是匹配我的key
属性的manifest.json。这使得无法测试像选项页这样的扩展页面。
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?还是我应该采取另一种方法?
发布于 2014-11-13 03:29:08
清单key
值不是扩展名。您必须从网站安装扩展名,并查看桌面上的manifest.json文件。在该文件中使用它们key
值。文档描述了如何找到安装目录。
发布于 2021-01-31 05:59:21
我也有同样的问题。只要从crx文件加载您的扩展名,您就会得到一个一致的id。
https://stackoverflow.com/questions/26899725
复制相似问题