Extensions de base de sélénium (User-Extensions.js)

Pour comprendre les extensions, comprenons d'abord les trois piliers de Selenium IDE

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

    Extensions de base de sélénium

  2. Évaluateurs/Assertion : Quelle vérification effectuez-vous sur les données que vous obtenez de l'interface utilisateur ?

Extensions de base de sélénium

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

Extensions de base de sélénium

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 besoins 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 capable de 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 tutoriel, nous apprendrons comment créer une extension utilisateur pour convertir du texte en majuscules.

Obligation de créer une extension utilisateur Selenium

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

Exigence de créer une extension utilisateur Selenium

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

Comment Selenium IDE reconnaît l’extension utilisateur ?

Après avoir ajouté une 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 commencent par « faire », c'est-à-dire que si l'action concerne du texte en majuscules, son nom le 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 doTextUpperCase action, Selenium IDE créera une fonction d'attente correspondante comme TextUpperCaseAndWait. Il peut accepter deux paramètres

Exemple : Action de texte en majuscules

Selenium.prototype.doTextUpperCase = function(locator, text) {
     // Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text
     var element = this.page().findElement(locator);
      
     // Create the text to type
     text = text.toUpperCase();
      
     // Replace the element text with the new text
     this.page().replaceText(element, text);
    };

Étape 2) Évaluateurs/Affirmation- Tous les évaluateurs inscrits dans le prototype d'objet sélénium recevront le préfixe

par « obtenir » ou « est » Ex. getValueFromCompoundTable , isValueFromCompoundTable . Il peut accepter deux paramètres, un pour la cible et un autre pour le champ de valeur dans le scénario de test.

Créer une extension utilisateur

Pour chaque évaluateur, il y aura des fonctions de vérification correspondantes préfixées par « vérifier », « assert » et la fonction d'attente préfixée par « waitFor »

Exemple : Pour les évaluateurs de texte en majuscules

Selenium.prototype.assertTextUpperCase = function(locator, text) {
     // All locator-strategies are automatically handled by "findElement"
     var element = this.page().findElement(locator);
      
     // Create the text to verify
     text = text.toUpperCase();
      
     // Get the actual element value
     var actualValue = element.value;
    
     // Make sure the actual value matches the expected
     Assert.matches(expectedValue, actualValue);
    };
    
    Selenium.prototype.isTextEqual = function(locator, text) {
     return this.getText(locator).value===text;
    };
    
    Selenium.prototype.getTextValue = function(locator, text) {
     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 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 faut le chercher.

Exemple : pour le localisateur de texte en majuscules

// The "inDocument" is a document you are searching.
    PageBot.prototype.locateElementByUpperCase = function(text, inDocument) {
     // Create the text to search for
     var expectedValue = text.toUpperCase();
      
     // Loop through all elements, looking for ones that have
     // a value === our expected value
     var allElements = inDocument.getElementsByTagName("*");
// This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element.
     for (var i = 0; i < allElements.length; i++) {
     var testElement = allElements[i];
     if (testElement.innerHTML && testElement.innerHTML === expectedValue) {
     return testElement;
     }
     }
     return null;
    };

Comment utiliser l'extension principale nouvellement créée ?

  1. Accédez à l'IDE Sélénium

    Cliquez sur Options -> Options…

Utiliser l'extension principale nouvellement créée

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

    Utiliser l'extension principale nouvellement créée

  2. Cliquez sur OK et redémarrez Selenium IDE

Utiliser l'extension principale nouvellement créée

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

Utiliser l'extension principale nouvellement créée

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

Nom, Prénom L’objectif
Favoris Pour marquer une suite de tests comme favorite et les exécuter en un clic
Pilote flexible X Pour l'automatisation basée sur Flex
FlexMonkium Pour l'enregistrement et la lecture basés sur Adobe Flex Essais dans l'IDE Sélénium
Journalisation des fichiers Pour enregistrer les journaux dans un fichier
Le contrôle de flux Pour contrôler le flux d’exécution des tests
Mettre en surbrillance les éléments Pour mettre en évidence un champ web
Attente implicite Attendre un élément pendant un certain délai
Capture d'écran en cas d'échec Prendre une capture d'écran en cas d'échec
Résultats de test Épargnez Cas de test résultat d'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 répond pas aux exigences actuelles.
  • Pour créer une extension utilisateur, il est nécessaire d'ajouter du javascript au prototype d'objet de Selenium.
  • Après la création de l'extension, il est nécessaire de l'ajouter dans Selenium IDE et de redémarrer l'IDE.

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