Selenium ChromeDriver, не могу запустить Google Chrome с загруженным расширением

Я работаю над созданием автоматизированных тестов для моего расширения Google Chrome с использованием Selenium 2.0 с:

  1. WebdriverJS + NodeJS
  2. ChromeDriver
  3. MacOSX 10.8.4

Во-первых, я также хотел протестировать процесс установки, но не представляется возможным нажать кнопку "Добавить", когда диалоговое окно установки появляется с помощью Selenium. ( Мой другой ТАК вопрос по этому поводу).

Теперь я изменил свой план. Вместо того, чтобы устанавливать расширение как часть тест-драйва, я хочу запустить 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)

Когда я запускаю приведенный выше код, я получаю следующую ошибку:

Я заметил, что ChromeDriver загружает расширение Chrome под названием "Chrome Automation Extension 1" при открытии Chrome, поэтому должен быть способ загрузить другое расширение, либо загрузить его прямо из интернет-магазина с помощью идентификатора приложения, либо загрузить с локального компьютера. - упакованы или распакованы.

Любая помощь будет принята с благодарностью!

1 ответ

Решение

Убедитесь, что файл manifest.json находится в корне вашего zip-файла. Распространенная ошибка - случайно заархивировать каталог расширения вместо файлов расширения.

Используя zip:

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

Используя 7-почтовый индекс:

cd path/to/extension
7z u -tzip ../chrome-extension.zip *
Другие вопросы по тегам