Pour comprendre les extensions, commençons par comprendre les trois piliers de sélénium IDE
- Action: quelle opération vous effectuez sur l'écran de l'interface utilisateur
- Évaluateurs / Assertion: quelle vérification vous faites 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.
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 , ,,