spécifications
et un fichier de configuration
.http://juliemr.github.io/protractor-demo/
. describe
et it
est issue du framework Jasmine
.
browser
est un fichier global créé par Protractor
, utilisé pour les commandes de niveau navigateur telles que la navigation avec browser.get
.
conf.js
:Protractor
où se trouvent vos fichiers de test (specs
) et où parler avec votre serveur Selenium (seleniumAddress
).
Il spécifie que nous utiliserons Jasmine
pour la structure de test.
Il utilisera les valeurs par défaut pour toutes les autres configurations.
Chrome est le navigateur par défaut.
Maintenant, lancez le test avec :
spec.js
comme suit :element
et by
, qui sont également créés par Protractor
.
La fonction element
est utilisée pour rechercher des éléments HTML sur votre page Web.
Elle retourne un objet ElementFinder
, qui peut être utilisé pour interagir avec l'élément ou en obtenir des informations.
Dans ce test, nous utilisons sendKeys
pour taper dans
‹input/›
, click
clique sur un bouton et getText
il renvoie le contenu d'un élément.element
prend un paramètre, un localisateur, qui décrit comment rechercher l'élément.
L'objet by
crée des localisateurs.
Ici, nous utilisons trois types de localisateurs :by.model('first')
trouver l'élément avec ng-model="first"
.
Si vous inspectez la source de la page de la calculatrice, vous verrez que c'est ‹input type="text" ng-model="first"/›
.
by.id('gobutton')
pour trouver l'élément avec l'id
donné. Cela trouve ‹button id="gobutton"›
.
by.binding('latest')
pour trouver l'élément lié à la variable latest
. Ceci trouve la durée contenant {{latest}}
spec.js
comme suit :beforeEach
qui est exécutée avant chaque bloc it
.
Nous avons également stocké les ElementFinders
pour les première et deuxième entrées dans des variables agréables pouvant être réutilisées.
Remplissez le deuxième test à l'aide de ces variables, puis relancez les tests pour vous assurer de leur réussite.firstNumber.getAttribute('value')
et nous la comparons à la valeur définie précédemment.conf.js
comme suit :Firefox
au lieu de Chrome
.
L'objet capabilities
décrit le navigateur à tester.
Pour une liste complète des options, voir le fichier de configuration.conf.js
par :Chrome
et Firefox
,
et les résultats consignés séparément sur la ligne de commande.element.all
, ce qui retourne un ElementArrayFinder
.
Dans notre application de calculatrice, chaque opération est enregistrée dans l'historique, qui est implémenté sur le site sous forme de tableau ng-repeat
.
Faisons quelques opérations, puis testons qu'elles sont dans l'historique.spec.js
par :add
.
Nous avons ajouté la variable history
.
Nous utilisons element.all
avec le by.repeater
localisateur pour obtenir un ElementArrayFinder
.
Dans nos spécifications, nous affirmons que l'historique a la longueur attendue à l'aide de la méthode count
.
Corrigez le test pour que la seconde attente soit satisfaite.ElementArrayFinder
a de nombreuses méthodes en plus de count
.
Utilisons-nous last
pour obtenir un ElementFinder
qui correspond au dernier élément trouvé par le localisateur.toContain
matriciel Jasmine
pour affirmer que le texte de l'élément contient "1 + 2".
Le texte complet de l'élément contiendra également l'horodatage et le résultat.ElementArrayFinder
a également des méthodes each
, map
, filter
et reduce qui sont analogues aux JavaScript
méthodes Array
.