Przejdź do głównej treści

Usługa Profilu Firefox

Chcesz uruchomić przeglądarkę Firefox z określonym rozszerzeniem lub ustawić kilka preferencji? Selenium pozwala na używanie profilu dla przeglądarki Firefox poprzez przekazanie tego profilu jako ciągu base64 do właściwości moz:firefoxOptions.profile w Twoich pożądanych możliwościach. Wymaga to zbudowania tego profilu i przekonwertowania go na base64. Ta usługa dla testrunner wdio przejmuje pracę kompilowania profilu z Twoich rąk i pozwala wygodnie definiować pożądane opcje z pliku wdio.conf.js.

Aby znaleźć wszystkie możliwe opcje, otwórz about:config w przeglądarce Firefox lub odwiedź stronę mozillaZine, aby znaleźć pełną dokumentację każdego ustawienia. Dodatkowo możesz zdefiniować skompilowane (jako *.xpi) rozszerzenia Firefox, które powinny zostać zainstalowane przed rozpoczęciem testu.

Instalacja

Najłatwiejszym sposobem jest utrzymywanie @wdio/firefox-profile-service jako devDependency w Twoim package.json, poprzez:

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

Instrukcje dotyczące instalacji WebdriverIO można znaleźć tutaj.

Konfiguracja

Skonfiguruj swój profil, dodając usługę firefox-profile do listy usług. Następnie zdefiniuj swoje ustawienia we właściwości firefoxProfile w następujący sposób:

// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
extensions: [
'/path/to/extensionA.xpi', // ścieżka do pliku .xpi
'/path/to/extensionB' // lub ścieżka do rozpakowanego rozszerzenia Firefox
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriver.io',
legacy: true // używaj tylko dla Firefox <= 55
}]
],
// ...
};

Jeśli zbudowałeś niestandardowe rozszerzenie Firefox, które chcesz zainstalować w przeglądarce, upewnij się, że ustawiono flagę profilu 'xpinstall.signatures.required': false, ponieważ rozszerzenia Firefox muszą być podpisane przez Mozillę.

Aby używać niestandardowych niepodpisanych rozszerzeń, będziesz musiał również używać Firefox Developer Edition, ponieważ zwykły Firefox 48 i nowszy nie pozwala na to.

Opcje

Zawiera wszystkie ustawienia jako pary klucz-wartość. Wszystkie dostępne ustawienia można znaleźć na stronie about:config.

extensions

Dodaj jedno lub wiele rozszerzeń do sesji przeglądarki. Wszystkie wpisy mogą być albo bezwzględną ścieżką do pliku .xpi, albo ścieżką do rozpakowanego katalogu rozszerzenia Firefox.

Typ: String[]
Domyślnie: []

profileDirectory

Twórz profil Firefox na podstawie istniejącego, ustawiając bezwzględną ścieżkę do tego profilu.

Typ: String
Domyślnie: null

proxy

Ustaw ustawienia proxy sieciowego. Parametr proxy jest hashem, którego struktura zależy od wartości obowiązkowego klucza proxyType, który przyjmuje jedną z następujących wartości ciągu:

  • direct - bezpośrednie połączenie (bez proxy)
  • system - użyj ustawień proxy systemu operacyjnego
  • pac - użyj automatycznej konfiguracji proxy ustawionej na podstawie wartości klucza autoconfigUrl
  • manual - ręczne ustawienia proxy zdefiniowane oddzielnie dla różnych protokołów przy użyciu wartości z następujących kluczy: ftpProxy, httpProxy, sslProxy, socksProxy

Typ: Object
Domyślnie: null
Przykład:

  • Automatyczne Proxy:

    // wdio.conf.js
    export const config = {
    // ...
    services: [
    ['firefox-profile', {
    proxy: {
    proxyType: 'pac',
    autoconfigUrl: 'http://myserver/proxy.pac'
    }
    }]
    ],
    // ...
    };
  • Ręczne HTTP Proxy:

    // wdio.conf.js
    export const config = {
    // ...
    services: [
    ['firefox-profile', {
    proxy: {
    proxyType: 'manual',
    httpProxy: '127.0.0.1:8080'
    }
    }]
    ],
    // ...
    };
  • Ręczne HTTP i HTTPS Proxy:

    // 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

Ustaw tę flagę na true, jeśli używasz Firefox v55 lub niższej.

Typ: Boolean
Domyślnie: false


Więcej informacji na temat WebdriverIO znajdziesz na stronie głównej.

Welcome! How can I help?

WebdriverIO AI Copilot