Servicio de Perfil de Firefox
¿Quieres ejecutar tu navegador Firefox con una extensión específica o necesitas establecer algunas preferencias? Selenium te permite usar un perfil para el navegador Firefox pasando este perfil como cadena base64
a la propiedad moz:firefoxOptions.profile
en tus capacidades deseadas. Esto requiere construir ese perfil y convertirlo en base64
. Este servicio para el testrunner de wdio te quita el trabajo de compilar el perfil y te permite definir cómodamente tus opciones deseadas desde el archivo wdio.conf.js
.
Para encontrar todas las opciones posibles, abre about:config en tu navegador Firefox o visita el sitio web de mozillaZine para encontrar toda la documentación sobre cada configuración. Además de eso, puedes definir extensiones de Firefox compiladas (como *.xpi
) que deberían instalarse antes de que comience la prueba.
Instalación
La forma más sencilla es mantener @wdio/firefox-profile-service
como una devDependency en tu package.json
, vía:
npm install @wdio/firefox-profile-service --save-dev
Las instrucciones sobre cómo instalar WebdriverIO
se pueden encontrar aquí.
Configuración
Configura tu perfil añadiendo el servicio firefox-profile
a tu lista de servicios. Luego define tus ajustes en la propiedad firefoxProfile
de esta manera:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
extensions: [
'/path/to/extensionA.xpi', // ruta al archivo .xpi
'/path/to/extensionB' // o ruta a la extensión de Firefox desempaquetada
],
'xpinstall.signatures.required': false,
'browser.startup.homepage': 'https://webdriver.io',
legacy: true // solo usar para firefox <= 55
}]
],
// ...
};
Si has creado una extensión personalizada de Firefox que quieres instalar en el navegador, asegúrate de establecer 'xpinstall.signatures.required': false
como una bandera de perfil, ya que las extensiones de Firefox deben estar firmadas por Mozilla.
Para usar extensiones personalizadas sin firmar, también necesitarás usar Firefox Developer Edition ya que el Firefox regular 48 y más reciente no lo permiten.
Opciones
Contiene todos los ajustes como pares clave-valor. Puedes encontrar todos los ajustes disponibles en la página about:config
.
extensions
Añade una o múltiples extensiones a la sesión del navegador. Todas las entradas pueden ser tanto una ruta absoluta al archivo .xpi
como la ruta a un directorio de extensión de Firefox desempaquetado.
Tipo: String[]
Por defecto: []
profileDirectory
Crea un perfil de Firefox basado en uno existente estableciendo una ruta absoluta a ese perfil.
Tipo: String
Por defecto: null
proxy
Establece la configuración del proxy de red. El parámetro proxy
es un hash cuya estructura depende del valor de la clave obligatoria proxyType
, que toma uno de los siguientes valores de cadena:
direct
- conexión directa (sin proxy)system
- usar la configuración de proxy del sistema operativopac
- usar una configuración automática de proxy basada en el valor de la claveautoconfigUrl
manual
- configuración manual de proxy definida por separado para diferentes protocolos usando valores de las siguientes claves:ftpProxy
,httpProxy
,sslProxy
,socksProxy
Tipo: Object
Por defecto: null
Ejemplo:
-
Proxy Automático:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'pac',
autoconfigUrl: 'http://myserver/proxy.pac'
}
}]
],
// ...
}; -
Proxy HTTP Manual:
// wdio.conf.js
export const config = {
// ...
services: [
['firefox-profile', {
proxy: {
proxyType: 'manual',
httpProxy: '127.0.0.1:8080'
}
}]
],
// ...
}; -
Proxy HTTP y HTTPS Manual:
// 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
Por favor, establece esta bandera a true
si usas Firefox v55 o inferior.
Tipo: Boolean
Por defecto: false
Para más información sobre WebdriverIO, consulta la página principal.