Перейти к основному содержимому

Сервис профиля Firefox

Вы хотите запустить Firefox с определенным расширением или установить несколько настроек? Selenium позволяет использовать профиль для браузера Firefox, передавая этот профиль в виде строки base64 в свойство moz:firefoxOptions.profile в ваших возможностях. Это требует создания профиля и преобразования его в base64. Этот сервис для wdio testrunner берет на себя работу по компиляции профиля и позволяет комфортно определять желаемые параметры в файле wdio.conf.js.

Чтобы найти все возможные опции, откройте about:config в вашем браузере Firefox или перейдите на сайт mozillaZine, чтобы найти полную документацию о каждой настройке. Кроме того, вы можете определить скомпилированные (в виде *.xpi) расширения Firefox, которые должны быть установлены перед началом теста.

Установка

Самый простой способ — установить @wdio/firefox-profile-service как devDependency в вашем package.json с помощью:

npm install @wdio/firefox-profile-service --save-dev

Инструкции по установке WebdriverIO можно найти здесь.

Конфигурация

Настройте свой профиль, добавив сервис firefox-profile в список сервисов. Затем определите настройки в свойстве firefoxProfile, как показано ниже:

// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
extensions: [
'/path/to/extensionA.xpi', // путь к .xpi файлу
'/path/to/extensionB' // или путь к распакованному расширению Firefox
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriver.io',
legacy: true // использовать только для Firefox <= 55
}]
],
// ...
};

Если вы создали пользовательское расширение Firefox, которое хотите установить в браузер, обязательно установите 'xpinstall.signatures.required': false в качестве флага профиля, поскольку расширения Firefox должны быть подписаны Mozilla.

Для использования неподписанных расширений вам также потребуется Firefox Developer Edition, поскольку обычный Firefox версии 48 и новее не позволяет этого.

Опции

Содержит все настройки в виде пар ключ-значение. Все доступные настройки можно найти на странице about:config.

extensions

Добавить одно или несколько расширений в сессию браузера. Все записи могут быть абсолютным путем к файлу .xpi или путем к распакованному каталогу расширения Firefox.

Тип: String[]
По умолчанию: []

profileDirectory

Создать профиль Firefox на основе существующего, указав абсолютный путь к этому профилю.

Тип: String
По умолчанию: null

proxy

Установить настройки сетевого прокси. Параметр proxy представляет собой хэш, структура которого зависит от значения обязательного ключа proxyType, который принимает одно из следующих строковых значений:

  • direct - прямое соединение (без прокси)
  • system - использовать настройки прокси операционной системы
  • pac - использовать автоматическую конфигурацию прокси на основе значения ключа autoconfigUrl
  • manual - ручная настройка прокси, определяемая отдельно для разных протоколов с использованием значений следующих ключей: ftpProxy, httpProxy, sslProxy, socksProxy

Тип: Object
По умолчанию: null
Пример:

  • Автоматический прокси:

    // wdio.conf.js
    export const config = {
    // ...
    services: [
    ['firefox-profile', {
    proxy: {
    proxyType: 'pac',
    autoconfigUrl: 'http://myserver/proxy.pac'
    }
    }]
    ],
    // ...
    };
  • Ручной HTTP прокси:

    // wdio.conf.js
    export const config = {
    // ...
    services: [
    ['firefox-profile', {
    proxy: {
    proxyType: 'manual',
    httpProxy: '127.0.0.1:8080'
    }
    }]
    ],
    // ...
    };
  • Ручной HTTP и HTTPS прокси:

    // wdio.conf.js
    export const config = {
    // ...
    services: [
    ['firefox-profile', {
    proxy: {
    proxyType: 'manual',
    httpProxy: '127.0.0.1:8080',
    sslProxy: '127.0.0.1:8080'
    }
    }]
    ],
    // ...
    };

legacy

Установите этот флаг в true, если вы используете Firefox v55 или ниже.

Тип: Boolean
По умолчанию: false


Для получения дополнительной информации о WebdriverIO посетите домашнюю страницу.

Welcome! How can I help?

WebdriverIO AI Copilot