Service de Profil Firefox
Vous souhaitez exécuter votre navigateur Firefox avec une extension spécifique ou définir quelques préférences ? Selenium vous permet d'utiliser un profil pour le navigateur Firefox en transmettant ce profil sous forme de chaîne base64
à la propriété moz:firefoxOptions.profile
dans vos capacités souhaitées. Cela nécessite de construire ce profil et de le convertir en base64
. Ce service pour le testrunner wdio vous évite le travail de compilation du profil et vous permet de définir confortablement vos options souhaitées à partir du fichier wdio.conf.js
.
Pour trouver toutes les options possibles, ouvrez about:config dans votre navigateur Firefox ou visitez le site mozillaZine pour trouver la documentation complète sur chaque paramètre. En plus de cela, vous pouvez définir des extensions Firefox compilées (sous forme de *.xpi
) qui doivent être installées avant le début du test.
Installation
La façon la plus simple est de garder @wdio/firefox-profile-service
comme devDependency dans votre package.json
, via :
npm install @wdio/firefox-profile-service --save-dev
Les instructions sur l'installation de WebdriverIO
peuvent être trouvées ici.
Configuration
Configurez votre profil en ajoutant le service firefox-profile
à votre liste de services. Ensuite, définissez vos paramètres dans la propriété firefoxProfile
comme ceci :
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
extensions: [
'/path/to/extensionA.xpi', // chemin vers le fichier .xpi
'/path/to/extensionB' // ou chemin vers l'extension Firefox décompressée
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriver.io',
legacy: true // utiliser uniquement pour firefox <= 55
}]
],
// ...
};
Si vous avez créé une extension Firefox personnalisée que vous souhaitez installer dans le navigateur, assurez-vous de définir 'xpinstall.signatures.required': false
comme indicateur de profil car les extensions Firefox doivent être signées par Mozilla.
Pour utiliser des extensions personnalisées non signées, vous devrez également utiliser Firefox Developer Edition car le Firefox standard 48 et plus récent ne le permettent pas.
Options
Contient tous les paramètres sous forme de paires clé-valeur. Vous pouvez trouver tous les paramètres disponibles sur la page about:config
.
extensions
Ajoutez une ou plusieurs extensions à la session du navigateur. Toutes les entrées peuvent être soit un chemin absolu vers le fichier .xpi
, soit le chemin vers un répertoire d'extension Firefox décompressé.
Type: String[]
Par défaut: []
profileDirectory
Créez un profil Firefox basé sur un profil existant en définissant un chemin absolu vers ce profil.
Type: String
Par défaut: null
proxy
Définissez les paramètres de proxy réseau. Le paramètre proxy
est un objet dont la structure dépend de la valeur de la clé obligatoire proxyType
, qui prend l'une des valeurs de chaîne suivantes :
direct
- connexion directe (pas de proxy)system
- utiliser les paramètres de proxy du système d'exploitationpac
- utiliser une configuration de proxy automatique basée sur la valeur de la cléautoconfigUrl
manual
- paramètres de proxy manuels définis séparément pour différents protocoles en utilisant les valeurs des clés suivantes :ftpProxy
,httpProxy
,sslProxy
,socksProxy
Type: Object
Par défaut: null
Exemple:
-
Proxy Automatique:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'pac',
autoconfigUrl: 'http://myserver/proxy.pac'
}
}]
],
// ...
}; -
Proxy HTTP Manuel:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'manual',
httpProxy: '127.0.0.1:8080'
}
}]
],
// ...
}; -
Proxy HTTP et HTTPS Manuel:
// 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
Veuillez définir cet indicateur sur true
si vous utilisez Firefox v55 ou inférieur.
Type: Boolean
Par défaut: false
Pour plus d'informations sur WebdriverIO, consultez la page d'accueil.