4 votes

Peut-on "visiter" une extension de chrome lors d'un test avec Cypress ?

J'essaie de tester mon extension chrome en utilisant cypress.io.

Je peux charger avec succès mon extension en ajoutant ceci à plugins/index.js :

module.exports = (on, config) => {
  on('before:browser:launch', (browser = {}, args) => {
    if (browser.name === 'chrome') {
      args.push('--load-extension=../bananatabs/build')
      return args
    }
  })
}

Je peux ouvrir l'index.html de mon extension sur le navigateur cypress en naviguant à l'adresse suivante chrome-extension://ewoifjflksdjfioewjfoiwe/index.html

Mais quand j'essaie de le "visiter" dans un test, comme ceci :

context('visit bananatabs', () => {
    beforeEach(() => {
      cy.visit('chrome-extension://inbalflcnihklpnmnnbdcinlfgnmplfl/index.html')
    })

    it('does nothing', () => {
        assert(true);
    });

});

ça ne marche pas. la page se lit :

Désolé, nous n'avons pas pu charger : chrome-extension://inbalflcnihklpnmnnbdcinlfgnmplfl/index.html

Dans la documentation tous les exemples utilisent les protocoles http ou https, et non l'extension chrome.

UPDATE

Je peux voir que la page de test est http://localhost:54493/__/#/tests/integration/visit.spec.js et il contient une iframe avec la page que je teste, qui utilise chrome-extension:// protocole. Je ne suis pas sûr que ça puisse marcher.

Cela peut-il être fait ?

4voto

bkucera Points 3105

Pas actuellement, mais j'ai a ouvert un dossier pour ça.

Cypress met une restriction arbitraire pour http / https et pourrait facilement ajouter la prise en charge de protocoles spécifiques aux navigateurs tels que chrome:// , resource:// et chrome-extension://

N'hésitez pas à lui donner un :+1: !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X