Недавно мы создали тестовую среду E2E с [email protected] и написали несколько наборов тестов для тестирования расширения браузера ShopBack. В следующем разделе мы рассмотрим, как установить расширение локального браузера в Google Chrome и Mozilla Firefox, которое инициализируется Selenium.

Гугл Хром

Google Chrome намного проще, чем Firefox, просто подготовьте свое локальное расширение, а затем напишите несколько кодов селена, как показано ниже:

Однако как вы поступите, если захотите установить расширение после запуска Chrome? Google Chrome не позволяет загружать локальное расширение после его запуска, вместо этого можно использовать файл .crx. Так что же такое crx файл? На самом деле это просто архивный файл типа .zip. То же самое и с .xpi файлом Firefox.

Вы можете получить свой .crx файл через chrome: // extensions:

  1. Включите режим разработчика в правом верхнем углу.
  2. Нажмите кнопку расширения Pack. Появится диалоговое окно.
  3. Выберите путь к вашему локальному добавочному номеру.
  4. Готово, Chrome сгенерирует файлы .pem и .crx - родительский путь на третьем шаге.

Теперь это можно сделать с помощью .crx:

Mozilla Firefox

Firefox немного сложен при установке расширения браузера через Selenium. Вам не разрешается устанавливать расширение локального браузера в Firefox, даже если вы отключили xpinstall.signatures.required, как показано ниже:

const firefoxOption = new firefox.Options();
firefoxOption.setPreference('xpinstall.signatures.required', false);

К счастью, вы все еще можете добиться этого в Firefox Developer Edition (также известном как AURORA). Во-первых, вам необходимо установить Developer Edition с https://www.mozilla.org/firefox/developer.

Во-вторых, это должно быть свойство приложения в manifest.json. Например:

"applications": {
    "gecko": {
        "id": "ANY_ID_HERE",
        "strict_min_version": "52.0"
    }
}

После завершения вышеупомянутых двух шагов, когда вы устанавливаете локальное расширение, вы не можете предоставить папку расширения, как в случае с хромом. Вы должны назначить .xpi файл. Он почти такой же, как .zip, вы можете просто заархивировать свое расширение в .zip файл, а затем изменить его на .xpi файл.

Когда вы архивируете расширение, пожалуйста, не архивируйте корневую папку локального расширения, вместо этого вы должны выбрать все активы расширения, а затем заархивировать. ссылка: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Package_your_extension_

Последний шаг - инициализация Developer Edition через Selenium, а затем установка расширения:

При запуске появляется сообщение об ошибке, показанное ниже, это означает, что Selenium не может найти Firefox:

Ошибка: не удалось найти Firefox в текущей системе

Вы можете настроить путь к бункеру firefox вручную с помощью следующей команды:

firefox.Channel.AURORA.darwin_ = PATH_TO_FIREFOX_BIN;

В Mac OSX путь по умолчанию должен быть:

/Applications/Firefox Developer Edition.app/Contents/MacOS/firefox-bin

В любом случае, насколько я знаю, есть еще несколько способов установить локальное расширение для firefox. Однако некоторые из них представляют собой сложный обходной путь или работают только с Selenium 3. Я расскажу больше в этом посте, если получу какие-то обновления.