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 et 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.
En quoi 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 ?
- Allez dans 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 | Interet |
|---|---|
| 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 Tests 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 | Enregistrer 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รฉchargez le Selenium Extension principale utilisรฉe dans ce didacticiel









