Selenium Extensions principales (User-Extensions.js)
Pour comprendre les extensions, comprenons d'abord les trois piliers de Selenium IDE
- Action : quelle opération vous effectuez sur l'écran de l'interface utilisateur
- Évaluateurs/Assertion : Quelle vérification effectuez-vous sur les données que vous obtenez de l'interface utilisateur ?
- Stratégie de localisation : comment pouvons-nous trouver l'élément dans l'interface utilisateur.
Maintenant, Selenium L'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 Selenium poste utilisateur
Pour créer une extension utilisateur pour Selenium IDE, nous devons connaître le concept de base de Javascénario ainsi que Java Concept d'objet prototype de script.
Pour créer votre extension utilisateur, vous devez créer Java méthodes de script et les ajouter au prototype d'objet Selenium et au prototype d'objet PageBot.
Comment Selenium L'IDE reconnaît l'extension utilisateur ?
Après avoir ajouté une extension utilisateur à Selenium IDE quand on démarre Selenium IDE, toutes ces extensions dans le 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 SDI, Selenium L'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 L'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.
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 ?
- Cliquez sur Selenium IDE
Cliquez sur Options -> Options…
- Dans la section Général, sélectionnez l'emplacement du nouveau créé Selenium Extension de base
- Cliquez sur OK et redémarrez Selenium IDE
- Vous trouverez l'extension dans la liste des commandes
Voici une liste des extensions/plug-ins populaires utilisés dans Selenium IDE
Nom | 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 Contrôle de qualité in Selenium IDE |
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 | Enregistré Cas de test résultat d'une suite de tests en un clic |
Vous pouvez obtenir tout cela et bien d'autres sur SeleniumSection de téléchargement du site officiel du QG
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 L'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 Selenium IDE et redémarrez l'IDE.
Télécharger Selenium Extension principale utilisée dans ce didacticiel