Intern.js: загрузить расширение Firefox / Safari через конфиг - PullRequest
0 голосов
/ 17 мая 2018

Я использую Intern.js для функциональных тестов расширений браузера. Мне удалось получить расширение Chrome, предварительно загруженное в браузер с этим конфигом:

{
  "capabilities": {
    "selenium-version": "3.5.2"
  },
  "tunnel": "null",
  "tunnelOptions": {
    "host": "selenium.hostaddres.com:4444",
    "port": "4444",
    "path": "/wd/hub"
  },
  "environments": [
    { "browserName": "chrome",
      "chromeOptions": {
        "extensions": ["Q3IyNAMAAABFAgAAEqwECqYCMIIBIjANBgkqhkiG9w0BA+LXpUNZoDajG6ywIDAQABEoACNd+U4xNvCvtf7m........."
      },
      "browserTimeout": 10000 }
  ],
  "reporters": ["pretty"],
  "functionalSuites": ["dist/functional/tests/**/*.js"]
}

Свойство extensions является базовым 64-кодированным файлом crx (расширение chrome).

Мне не удалось найти какую-либо документацию, которая бы обеспечивала подобную конфигурацию для Firefox или Safari. Я понимаю, что у Selenium есть конкретные способы сделать это, но в идеале я бы хотел остаться в Intern-способе настройки этого. Любая помощь с примером рабочих конфигов будет принята с благодарностью. Спасибо!

1 Ответ

0 голосов
/ 17 мая 2018

Стажер на самом деле не имеет отношения к конкретной конфигурации браузера, он просто передает опции, которые вы предоставляете, непосредственно Selenium при создании сеанса.Сложно выяснить, какие опции доступны для любого конкретного браузера.

Для Firefox вы, вероятно, захотите создать профиль, содержащий интересующие вас расширения, а затем сообщить Firefoxиспользовать этот профиль во время тестов.

Раньше вам приходилось заархивировать и Base64 кодировать пользовательский профиль (основной процесс описан здесь ), но теперь вы, вероятно, можете обойтись простоуказывая на его местоположение в вашей системе при локальном тестировании.Соответствующие опции geckodriver описаны здесь .Предполагая, что вы используете профиль в формате zip и base64, ваша конфигурация может выглядеть следующим образом:

"environments": {
  "browserName": "firefox",
  "moz:firefoxOptions": {
    "profile": "UEsDBBQACAAIACynEk..."
  }
}
...