En realidad, necesito abrir páginas con la extensión instalada en cualquier navegador (no específicamente Chrome). Entonces puede ser firefox o phantomjs (no estoy seguro si es posible).
Entonces, ¿hay alguna forma de ejecutar chrome / firefox / phantom a través de webdriverio con la extensión preinstalada, y si la hay, cómo puedo hacerlo?
¡Gracias por adelantado!
¡Sí hay! Puede tener la propiedad chromeOptions
en su capacidad deseada. Este objeto tiene una propiedad llamada extensions
que toma la cadena base64 de su archivo crx
. Encontrará más información https://sites.google.com/a/chromium.org/chromedriver/capabilities
sí, eso funciona
var data = await fs.readFileSync('./ext.zip');
options.desiredCapabilities.chromeOptions.extensions = [data.toString('base64')];
¡Hola! ¡Gracias por compartir su enfoque!
@ d668 ¿ Tal vez tuvo algún problema similar mientras trabajaba en agregar una extensión a sus pruebas?
Intenté agregar una extensión y, después de ejecutar una prueba,
Tengo un error:
ERROR webdriver: Request failed due to unknown error: unknown error: cannot process extension #1 from unknown error: cannot read manifest
maxInstances: 5,
"goog:chromeOptions": {
extensions: [(function () {
try {
const webExt = fs.readFileSync('./extension.zip').toString('base64');
return webExt;
} catch (e) {
console.log(e, 'An error occurred while to parse extension zip file!');
}
})()],
args: ['--headless', '--disable-gpu']
},
@Madebyspeedster necesitas empaquetar la extensión. Abra chrome: // extensiones y haga clic en Empaquetar extensión. Generará el paquete .crx y la clave .pem. Después de eso, puede usar la clave .pem para generar paquetes para usted. Puede usar esta biblioteca para https://github.com/Constellation/crxmake
Comentario más útil
sí, eso funciona