2014-11-13 5 views
0

Я тестирую расширение хром с помощью selenium webdriver.js и chromedriver. Я смог успешно запустить хром, с установленным расширением, но идентификатор расширения генерируется случайным образом вместо соответствия key свойства моего manifest.json. Это не позволяет тестировать дополнительные страницы, такие как страница параметров.Идентификатор расширения Chromedriver не совпадает с ключом в 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'); 

Мое предположение о том, что расширение идентификатор будет соответствовать ключу (и это происходит при установке из интернет-магазина) , но это не похоже на загрузку расширения через chromedriver. Есть ли способ заставить загруженное расширение иметь согласованный идентификатор? Или я должен использовать другой подход?

+0

См. Https://stackoverflow.com/questions/23873623/obiving-chrome-extension-id-for-development –

+0

@RobW благодарит за комментарий! Я не думал, что мне нужно пройти процесс создания файла PEM, если я просто использую ключ из расширения, установленного через хром-магазин. Правильно ли это предположение? –

+0

Ну, если вы используете ключ произвольного расширения из CWS в своем распакованном расширении, то вы эффективно выдаете себя за расширение. Если вы не хотите использовать инструменты, о которых я упоминал в этом связанном ответе, вы можете сгенерировать crx-файл (и файл PEM) с помощью кнопки «Расширение пакета» на 'chrome: // extensions'. После создания CRX-файла вы можете использовать мой просмотрщик CRX для просмотра '' ключа ''расширения (как описано в http://stackoverflow.com/questions/21497781/how-to-change-chrome-packaged-app -id или, почему-ду-мы-потребность ключ-поле-в-манифеста/21500707 # 21500707). –

ответ

2

Показатель key Значение не является идентификатором расширения. Вы должны установить расширение из интернет-магазина и посмотреть в файле manifest.json на своем столе. Используйте значение key внутри этого файла. documentation описывает, как найти каталог установки.

+0

В моем случае я вообще не хочу использовать веб-магазин. Но мне нужен идентификатор contant для запуска моих тестов на моей машине и на любом другом (buddys, который помогает разрабатывать). В этот момент все, кто клонирует мои проекты, должны получить свой собственный идентификатор для этого расширения, что является своего рода болью. Проверьте мой вопрос: http://stackoverflow.com/questions/36641833/receiving-the-chrome-api-chrome-runtime-within-selenium-test?noredirect11comment60883035_36641833 – xetra11

Смежные вопросы