Na verdade, preciso abrir páginas com extensão instalada em qualquer navegador (não especificamente no Chrome). Portanto, pode ser firefox ou phantomjs (não tenho certeza se é possível).
Então, existe alguma maneira de executar chrome / firefox / phantom via webdriverio com extensão pré-instalada e se houver - como posso fazer isso?
Desde já, obrigado!
Sim existe! Você pode ter a propriedade chromeOptions
em sua propriedade desejada. Este objeto tem uma propriedade chamada extensions
que pega a string base64 do seu arquivo crx
. Você encontrará mais informações https://sites.google.com/a/chromium.org/chromedriver/capabilities
sim, isso funciona
var data = await fs.readFileSync('./ext.zip');
options.desiredCapabilities.chromeOptions.extensions = [data.toString('base64')];
Olá! Obrigado por compartilhar sua abordagem!
@ d668 Talvez você tenha tido algum problema semelhante ao trabalhar para adicionar uma extensão aos seus testes?
Tentei adicionar uma extensão e, após a execução de um teste,
Recebi um erro:
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 você precisa embalar a extensão. Abra chrome: // extensions e clique em Pack extension. Ele irá gerar um pacote .crx e uma chave .pem. Depois disso, você pode usar a chave .pem para gerar pacotes para você. Você pode usar esta biblioteca para esse https://github.com/Constellation/crxmake
Comentários muito úteis
sim, isso funciona