2017-10-03 6 views
0

J'ai une suite de tests Protractor pour une application qui utilise un gestionnaire de protocole personnalisé pour transmettre des messages à partir d'une vue Web iOS.Comment désactiver le gestionnaire de protocole personnalisé pour rapporteur?

Lors du test avec protractor, comment puis-je éviter le message window.location = "app://doThing"; coutume de casser mes tests? Il montre le "Open xdg-open?" popup et ne continue pas avec des tests.

Ma configuration protractor ressemble à ceci:

exports.config = { 
    ..., 
    multiCapabilities: [ { 
    browserName: 'chrome', 
    chromeOptions: { 
     args: [ '--lang=en', '--window-size=1024x768' ] 
    }, 
    specs: 'test-*.js', 
    } ] 
}; 

Répondre

0

J'atteint ce dans Chrome 60 en définissant les préférences à l'intérieur du bloc de chromeOptions.

exports.config = { 
    ..., 
    multiCapabilities: [ { 
    browserName: 'chrome', 
    chromeOptions: { 
     args: [ '--lang=en', '--window-size=1024x768' ], 

     // Replace "app" with your app's custom scheme. 
     prefs: { 
     protocol_handler: { 
      excluded_schemes: { 
      "app": true 
      } 
     } 
     }, 
    }, 
    specs: 'test-*.js', 
    } ] 
}; 

Avant Chrome 60, je FORCÉES un dossier de profil pour le coureur Chrome. Vous pouvez le faire en ayant un dossier nommé «/chrome-profil » dans le récipient docker Chrome par exemple, et l'ajout d'un fichier nommé « Etat par défaut » avec le contenu suivant:

{ 
    "protocol_handler": { 
     "excluded_schemes": { 
      "app": true 
     } 
    } 
} 

Et après cela, définissez les indicateurs de données utilisateur-dir Chrome en tant que tel:

exports.config = { 
    ..., 
    multiCapabilities: [{ 
    'browserName': 'chrome', 
    'chromeOptions' : { 
     args: ['--lang=en', 
       '--window-size=1024,768', 
       '--user-data-dir=/chrome-profile/'] 
     }, 
     specs: ['test-*.js'] 
    }] 
};