Firefox Profil Service
Sie möchten Ihren Firefox-Browser mit einer bestimmten Erweiterung ausführen oder müssen einige Einstellungen festlegen? Selenium ermöglicht es Ihnen, ein Profil für den Firefox-Browser zu verwenden, indem Sie dieses Profil als base64
-String an die Eigenschaft moz:firefoxOptions.profile
in Ihren gewünschten Capabilities übergeben. Dies erfordert das Erstellen dieses Profils und die Konvertierung in base64
. Dieser Service für den wdio testrunner nimmt Ihnen die Arbeit der Profilzusammenstellung ab und ermöglicht es Ihnen, Ihre gewünschten Optionen bequem aus der Datei wdio.conf.js
zu definieren.
Um alle möglichen Optionen zu finden, öffnen Sie about:config in Ihrem Firefox-Browser oder besuchen Sie die mozillaZine Website, um die vollständige Dokumentation zu jeder Einstellung zu finden. Zusätzlich können Sie kompilierte (als *.xpi
) Firefox-Erweiterungen definieren, die vor dem Start des Tests installiert werden sollen.
Installation
Der einfachste Weg ist, @wdio/firefox-profile-service
als devDependency in Ihrer package.json
zu behalten, via:
npm install @wdio/firefox-profile-service --save-dev
Anweisungen zur Installation von WebdriverIO
finden Sie hier.
Konfiguration
Richten Sie Ihr Profil ein, indem Sie den firefox-profile
Service zu Ihrer Service-Liste hinzufügen. Definieren Sie dann Ihre Einstellungen in der Eigenschaft firefoxProfile
wie folgt:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
extensions: [
'/path/to/extensionA.xpi', // path to .xpi file
'/path/to/extensionB' // or path to unpacked Firefox extension
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriver.io',
legacy: true // only use for firefox <= 55
}]
],
// ...
};
Wenn Sie eine eigene Firefox-Erweiterung erstellt haben, die Sie im Browser installieren möchten, stellen Sie sicher, dass Sie 'xpinstall.signatures.required': false
als Profilkennzeichen setzen, da Firefox-Erweiterungen von Mozilla signiert sein müssen.
Um benutzerdefinierte, unsignierte Erweiterungen zu verwenden, müssen Sie auch Firefox Developer Edition verwenden, da der reguläre Firefox 48 und neuere Version dies nicht erlauben.
Optionen
Enthält alle Einstellungen als Schlüssel-Wert-Paare. Alle verfügbaren Einstellungen finden Sie auf der Seite about:config
.
extensions
Fügen Sie eine oder mehrere Erweiterungen zur Browser-Sitzung hinzu. Alle Einträge können entweder ein absoluter Pfad zur .xpi
-Datei oder der Pfad zu einem entpackten Firefox-Erweiterungsverzeichnis sein.
Typ: String[]
Standard: []
profileDirectory
Erstellen Sie ein Firefox-Profil basierend auf einem vorhandenen, indem Sie einen absoluten Pfad zu diesem Profil angeben.
Typ: String
Standard: null
proxy
Legen Sie Netzwerk-Proxy-Einstellungen fest. Der Parameter proxy
ist ein Hash, dessen Struktur vom Wert des obligatorischen Schlüssels proxyType
abhängt, der einen der folgenden Zeichenkettenwerte annimmt:
direct
- direkte Verbindung (kein Proxy)system
- Proxy-Einstellungen des Betriebssystems verwendenpac
- automatische Proxy-Konfiguration verwenden, die auf dem Wert des SchlüsselsautoconfigUrl
basiertmanual
- manuelle Proxy-Einstellungen, die separat für verschiedene Protokolle mit Werten aus den folgenden Schlüsseln definiert sind:ftpProxy
,httpProxy
,sslProxy
,socksProxy
Typ: Object
Standard: null
Beispiel:
-
Automatischer Proxy:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'pac',
autoconfigUrl: 'http://myserver/proxy.pac'
}
}]
],
// ...
}; -
Manueller HTTP-Proxy:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'manual',
httpProxy: '127.0.0.1:8080'
}
}]
],
// ...
}; -
Manueller HTTP- und 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
Bitte setzen Sie dieses Flag auf true
, wenn Sie Firefox v55 oder niedriger verwenden.
Typ: Boolean
Standard: false
Weitere Informationen zu WebdriverIO finden Sie auf der Homepage.