En fait, j'ai besoin d'ouvrir des pages avec l'extension installée dans n'importe quel navigateur (pas spécifiquement Chrome). Cela peut donc être firefox, ou phantomjs (je ne sais pas si c'est possible).
Alors, existe-t-il un moyen d'exécuter chrome/firefox/phantom via webdriverio avec l'extension préinstallée , et s'il y en a, comment puis-je le faire ?
Merci d'avance!
Oui il y a! Vous pouvez avoir la propriété chromeOptions
dans votre capacité souhaitée. Cet objet a une propriété appelée extensions
qui prend la chaîne base64 de votre fichier crx
. Vous trouverez plus d'informations https://sites.google.com/a/chromium.org/chromedriver/capabilities
ouais ça marche
var data = await fs.readFileSync('./ext.zip');
options.desiredCapabilities.chromeOptions.extensions = [data.toString('base64')];
Salut! Merci d'avoir partagé votre approche !
@ d668 Peut-être avez-vous eu un problème similaire en travaillant sur l'ajout d'une extension à vos tests ??
J'ai essayé d'ajouter une extension, et après l'exécution d'un test,
J'ai une erreur :
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, vous devez emballer l'extension. Ouvrez chrome://extensions et cliquez sur Pack extension. Il générera le pack .crx et la clé .pem. Après cela, vous pouvez utiliser la clé .pem pour générer des packs pour vous. Vous pouvez utiliser cette bibliothèque pour cela https://github.com/Constellation/crxmake
Commentaire le plus utile
ouais ça marche