Protractor / Configuration Browser

Références

L'actualité

Librairie

L'information

Configuration du navigateur

Protractor fonctionne avec Selenium WebDriver, une infrastructure d'automatisation de navigateur. Selenium WebDriver prend en charge plusieurs implémentations de navigateurs ou pilotes, décrits ci-dessous.

Prise en charge du navigateur

Protractor prend en charge les deux dernières versions majeures de Chrome, Firefox, Safari et IE. Ceux-ci sont utilisés dans la suite de tests de Protractor.Vous pouvez voir le statut actuel sur Travis.

Notez que, puisque Protractor utilise WebDriver pour piloter les navigateurs, tous les problèmes liés aux implémentations de WebDriver (tels que FireFoxDriver, ChromeDriver et IEDriver) apparaîtront dans Protractor. Le tableau ci-dessous contient des liens vers les principaux problèmes connus. Vous pouvez effectuer une recherche parmi tous les problèmes de WebDriver dans le suivi des problèmes de Selenium.

Driver Support Problèmes connus
ChromeDriver Oui Lien
FirefoxDriver * Oui Lien
SafariDriver Oui Lien
IEDriver Oui Lien
OperaDriver Non
ios-Driver Non
époques - IOS / Safari Oui** Lien
époques - Android / Chrome Oui** Lien
Selendroid Oui**
PhantomJS / GhostDriver * Lien

(*) Prise en charge de WebDriver dans Firefox a récemment changé et la version FireFox 48 ne fonctionne pas correctement avec les outils actuels. Pour le moment, nous vous recommandons de tester FireFox 47. Dans les versions futures, WebDriver via le projet Marionette de Mozilla sera disponible.

(**) Ces pilotes ne font pas encore partie des tests de fumée de Protractor.

( * ) Nous déconseillons d'utiliser PhantomJS pour les tests avec Protractor. De nombreux problèmes signalés avec PhantomJS se bloquent et se comportent différemment des navigateurs réels.


Configurer les navigateurs

Dans votre fichier de configuration Protractor, toute la configuration du navigateur est effectuée dans l'objet capabilities. Cet objet est transmis directement au générateur WebDriver ( builder.js ).

config.ts

Voir DesiredCapabilities pour des informations complètes sur les propriétés disponibles.

Utilisation de navigateurs autres que Chrome

Pour utiliser un navigateur autre que Chrome, définissez simplement un nom de navigateur différent dans l'objet Fonctions.

Vous devrez peut-être installer un autre binaire pour exécuter un autre navigateur, tel qu'IE ou Android. Pour plus d'informations, voir Téléchargements SeleniumHQ

Ajout d'options spécifiques à Chrome

Les options de Chrome sont imbriquées dans l'objet chromeOptions. Une liste complète des options est disponible sur le site ChromeDriver. Par exemple, pour afficher un compteur FPS en haut à droite, votre configuration devrait ressembler à ceci :


Ajout d'options spécifiques à Firefox

Les options de Firefox sont imbriquées dans l'objet moz:firefoxOptions. Une liste complète des options se trouve sur la page GeckoDriver Github. Par exemple, pour fonctionner en mode sans échec, votre configuration ressemblerait à ceci :


Test avec plusieurs navigateurs

Si vous souhaitez tester plusieurs navigateurs, utilisez l'option multiCapabilities de configuration.

Le rapporteur effectuera des tests en parallèle par rapport à chaque ensemble de capacités. Veuillez noter que si multiCapabilities est défini, le coureur ignorera la configuration capabilities.

Utilisation de plusieurs navigateurs dans le même test

Si vous testez des applications dans lesquelles deux navigateurs doivent interagir (par exemple, des systèmes de discussion), vous pouvez le faire avec un rapporteur en créant de manière dynamique des navigateurs lors de vos tests. Protractor expose une fonction dans l'objet browser pour vous aider à atteindre cet objectif : browser.forkNewDriverInstance(opt_useSameUrl, opt_copyMockModules). Cet appel renverra un nouvel objet de navigateur indépendant. Le premier paramètre de la fonction indique si vous souhaitez que le nouveau navigateur démarre avec la même URL que celle du navigateur que vous avez créé. Le deuxième paramètre indique si vous souhaitez que le nouveau navigateur copie les modules fictifs à partir du navigateur que vous avez créé.

Maintenant, vous pouvez interagir avec les navigateurs. Cependant, notez que les globals element, $, $$ et browser sont tous associés au navigateur d'origine. Pour interagir avec les nouveaux navigateurs, vous devez spécifiquement indiquer à rapporteur de le faire comme suit :

Protractor veillera à ce que les commandes s'exécutent automatiquement de manière synchronisée. Par exemple, dans le code suivant, element(by.model(...)).click() sera exécuté avant browser2.$('.css').click() :


Utilisation de Chrome Headless

Pour démarrer Chrome en mode Headless, démarrez Chrome avec l'indicateur --headless.

Á partir de Chrome 58, vous devez également définir --disable-gpu, bien que cela puisse changer dans les versions futures. De plus, changer la taille de la fenêtre pendant un test ne fonctionnera pas en mode Headless, mais vous pouvez le définir sur la ligne de commande comme ceci --window-size=800,600.


Utilisation de Firefox Headless

Pour démarrer Firefox en mode Headless, démarrez Firefox avec l'indicateur --headless.

Firefox Headless. Disponible dans Firefox 55+ sous Linux et Firefox 56+ sous Windows / Mac OS X.

PhantomJS

PhantomJS n'est plus officiellement pris en charge.