Extensions Selenium Core (User-Extensions.js)

Pour comprendre les extensions, commençons par comprendre les trois piliers de sélénium IDE

  1. Action: quelle opération vous effectuez sur l'écran de l'interface utilisateur

  2. Évaluateurs / Assertion: quelle vérification vous faites sur les données que vous obtenez de l'interface utilisateur

  1. Stratégie de localisation: comment pouvons-nous trouver l'élément dans l'interface utilisateur.

Désormais, Selenium IDE dispose d'une bibliothèque très mature avec de nombreuses actions, assertions / évaluateurs et stratégies de localisation.

Mais parfois, nous devons y ajouter des fonctionnalités supplémentaires pour les exigences de notre projet. Dans cette situation, nous pouvons étendre cette bibliothèque en ajoutant nos extensions personnalisées. Ces extensions personnalisées sont appelées «Extension utilisateur».

Par exemple, nous avons besoin d'une action qui peut convertir le texte en majuscules avant de le remplir dans un élément Web. Vous ne trouvez pas cette action dans la bibliothèque d'actions par défaut. Dans ce cas, vous pouvez créer votre propre «Extension utilisateur». Dans ce didacticiel, nous allons apprendre à créer une extension utilisateur pour convertir du texte en majuscules

Conditions requises pour créer l'extension utilisateur Selenium:

Pour créer une extension utilisateur pour Selenium IDE, nous devons connaître le concept de base du concept d'objet prototype JavaScript et Java Script.

Pour créer votre extension utilisateur, vous devez créer des méthodes de script Java et les ajouter au prototype d'objet sélénium et au prototype d'objet PageBot.

Comment Selenium IDE reconnaît-il l'extension utilisateur?

Après l'ajout de l'extension utilisateur à Selenium IDE lorsque nous démarrons Selenium IDE, toutes ces extensions du prototype javascript sont chargées et Selenium IDE les reconnaît par leur nom.

Comment créer une extension utilisateur

Étape 1) Action - toutes les actions sont lancées par "do", c'est-à-dire que si l'action est pour du texte en majuscules, son nom sera doTextUpperCase. Lorsque nous ajoutons cette méthode d'action dans Selenium IDE, Selenium IDE créera lui-même une méthode d'attente pour cette action. Donc, dans ce cas, lorsque nous créons une action doTextUpperCase , Selenium IDE créera une fonction d'attente correspondante en tant que TextUpperCaseAndWait . Il peut accepter deux paramètres

Exemple: action de texte en majuscules

Selenium.prototype.doTextUpperCase = function (localisateur, texte) {// Ici, findElement est lui-même capable de gérer tout type de localisateur (xpath, css, name, id, className), il suffit de passer le texte du localisateurélément var = this.page (). findElement (localisateur);// Créer le texte à tapertext = text.toUpperCase ();// Remplace le texte de l'élément par le nouveau textethis.page (). replaceText (élément, texte);};

Étape 2) Évaluateurs / Assertion - Tous les évaluateurs enregistrés dans le prototype d'objet sélénium seront préfixés

par "get" ou "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable .Il peut accepter deux paramètres, un pour la cible et l'autre pour le champ de valeur dans le cas de test.

Pour chaque évaluateur, il y aura des fonctions de vérification correspondantes préfixées par "verify", "assert" et le préfixe de fonction d'attente par "waitFor"

Exemple: pour les évaluateurs de texte en majuscules

Selenium.prototype.assertTextUpperCase = function (localisateur, texte) {// Toutes les stratégies de localisation sont automatiquement gérées par "findElement"élément var = this.page (). findElement (localisateur);// Créer le texte à vérifiertext = text.toUpperCase ();// Récupère la valeur réelle de l'élémentvar actualValue = element.value;// Assurez-vous que la valeur réelle correspond à la valeur attendueAssert.matches (expectedValue, actualValue);};Selenium.prototype.isTextEqual = function (localisateur, texte) {return this.getText (locator) .value === text;};Selenium.prototype.getTextValue = function (localisateur, texte) {return this.getText (locator) .value;};

Étape 3) Stratégie de localisation - Si nous souhaitons créer notre propre fonction pour localiser un élément, alors

nous devons étendre le prototype de PageBot avec une fonction avec le préfixe "LocateElementBy".

Il faudra deux paramètres, le premier sera la chaîne de localisation et le second sera le document

où il doit être recherché.

Exemple: pour le localisateur de texte en majuscules

// Le "inDocument" est un document que vous recherchez.PageBot.prototype.locateElementByUpperCase = function (text, inDocument) {// Créer le texte à recherchervar expectedValue = text.toUpperCase ();// Boucle sur tous les éléments à la recherche de ceux// une valeur === notre valeur attenduevar allElements = inDocument.getElementsByTagName ("*");// Cette étoile '*' est une sorte d'expression régulière elle passera par chaque élément (en HTML DOM, chaque élément a sûrement un nom de balise comme , ,

, , ,
etc.). Ici, notre motif est de trouver un élément qui correspond au texte en majuscules que nous avons passé afin que nous le recherchions avec tous les éléments et lorsque nous obtiendrons une correspondance, nous aurons l'élément Web correct.pour (var i = 0; i

Comment utiliser l'extension de base nouvellement créée?

  1. Aller à Selenium IDE

    Cliquez sur Options -> Options…

  1. Dans la section Général, sélectionnez l'emplacement de l'extension Selenium Core nouvellement créée

  2. Cliquez sur OK et redémarrez Selenium IDE

  1. Vous trouverez l'extension dans la liste des commandes

Voici une liste des extensions / plug-ins populaires utilisés dans Selenium IDE

Nom But
Favoris Pour marquer une suite de tests comme favorite et les exécuter en un clic
Flex Pilot X Pour l'automatisation basée sur Flex
FlexMonkium Pour les tests d'enregistrement et de lecture basés sur Adobe Flex dans Selenium IDE
Journalisation des fichiers Pour enregistrer les journaux dans un fichier
Contrôle de flux Pour contrôler le flux d'exécution des tests
Mettre en évidence les éléments Pour mettre en évidence un contrôle Web
Attente implicite Attendre un élément pendant une certaine limite de temps
ScreenShot en cas d'échec Prendre une capture d'écran en cas d'échec
Résultats de test Enregistrer le résultat du scénario de test pour une suite de tests en un clic

Vous pouvez obtenir tout cela et bien d'autres dans la section de téléchargement du site officiel de SeleniumHQ

http://docs.seleniumhq.org/download/

Résumé:

  • Il y a trois parties de Selenium IDE, action, évaluateurs / assertion, stratégie de localisation.
  • L'extension utilisateur est créée lorsque Selenium IDE ne remplit pas l'exigence actuelle.
  • Pour créer une extension utilisateur, il est nécessaire d'ajouter du javascript au prototype d'objet de sélénium.
  • Après la création de l'extension, il est nécessaire de l'ajouter dans Selenium IDE et de redémarrer IDE.

Téléchargez l'extension Selenium Core utilisée dans ce didacticiel

Articles intéressants...