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 operacyjnegopac
- użyj automatycznej konfiguracji proxy ustawionej na podstawie wartości kluczaautoconfigUrl
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.