Selenium Kernerweiterungen (User-Extensions.js)
Um Erweiterungen zu verstehen, müssen wir zunächst die drei Säulen der Selenium IDE verstehen.
- Aktion: Welchen Vorgang führen Sie auf dem UI-Bildschirm aus?
- Prüfer/Behauptung: Welche Überprüfung Sie an den Daten durchführen, die Sie von der Benutzeroberfläche erhalten
- Locator-Strategie: Wie können wir das Element in der Benutzeroberfläche finden?
Jetzt, Selenium IDE verfügt über eine sehr ausgereifte Bibliothek mit zahlreichen Aktionen, Assertion/Assessoren und Locator-Strategien.
Manchmal müssen wir jedoch für unsere Projektanforderungen weitere Funktionen hinzufügen. In diesem Fall können wir diese Bibliothek erweitern, indem wir unsere benutzerdefinierten Erweiterungen hinzufügen. Diese benutzerdefinierten Erweiterungen werden „Benutzererweiterung“ genannt.
Beispielsweise benötigen wir eine Aktion, die den Text in Großbuchstaben umwandeln kann, bevor er in ein Webelement eingefügt wird. Sie können diese Aktion nicht in der Standardaktionsbibliothek finden. In diesem Fall können Sie Ihre eigene „Benutzererweiterung“ erstellen. In diesem Tutorial erfahren Sie, wie Sie eine Benutzererweiterung erstellen, um Text in Großbuchstaben umzuwandeln
Voraussetzung zum Erstellen Selenium Benutzererweiterung
So erstellen Sie eine Benutzererweiterung für Selenium IDE, wir müssen das Grundkonzept kennen JavaSkript und Java Skript-Prototyp-Objektkonzept.
Um Ihre Benutzererweiterung zu erstellen, müssen Sie Java Skriptmethoden und fügen Sie sie dem Selenium-Objektprototyp und dem PageBot-Objektprototyp hinzu.
Wie Selenium IDE erkennt Benutzererweiterung?
Nach dem Hinzufügen der Benutzererweiterung zu Selenium IDE, wenn wir anfangen Selenium IDE, alle diese Erweiterungen im Javascript-Prototyp werden geladen und Selenium IDE erkennt sie an ihrem Namen.
So erstellen Sie eine Benutzererweiterung
Schritt 1) Aktion– Alle Aktionen werden mit „do“ gestartet, d. h. wenn es sich bei der Aktion um Text in Großbuchstaben handelt, lautet ihr Name doTextUpperCase. Wenn wir diese Aktionsmethode hinzufügen Selenium SDI, Selenium Die IDE erstellt selbst eine Wartemethode für diese Aktion. In diesem Fall also, wenn wir erstellen doTextUpperCase Aktion, Selenium Die IDE erstellt eine entsprechende Wartefunktion als TextUpperCaseAndWait. Es kann zwei Parameter akzeptieren
Beispiel: Textaktion in Großbuchstaben
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); };
Schritt 2) Gutachter/Behauptung- Alle im Selenium-Objektprototyp registrierten Gutachter erhalten das Präfix
durch „get“ oder „is“ Bsp. getValueFromCompoundTable , isValueFromCompoundTable . Es kann zwei Parameter akzeptieren, einen für das Ziel und einen für das Wertfeld im Testfall.
Für jeden Assessor gibt es entsprechende Verifizierungsfunktionen mit dem Präfix „verify“, „assert“ und dem Wartefunktionspräfix „waitFor“.
Beispiel: Für Prüfer von Texten in Großbuchstaben
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; };
Schritt 3) Locator-Strategie – Wenn wir unsere eigene Funktion zum Auffinden eines Elements erstellen möchten, dann
Wir müssen den PageBot-Prototyp um eine Funktion mit dem Präfix „locateElementBy“ erweitern.
Es werden zwei Parameter benötigt: Der erste ist die Locator-Zeichenfolge und der zweite das Dokument
wo gesucht werden muss.
Beispiel: Für den Text-Locator in Großbuchstaben
// 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; };
Wie verwende ich die neu erstellte Kernerweiterung?
- Gehe zu Selenium IDE
Klicken Sie auf Optionen -> Optionen…
- Wählen Sie im Abschnitt „Allgemein“ den Speicherort der neu erstellten Datei aus Selenium Core-Erweiterung
- Klicken Sie auf OK und starten Sie neu Selenium IDE
- Sie finden die Erweiterung in der Befehlsliste
Hier ist eine Liste beliebter Erweiterungen/Plug-Ins, die in verwendet werden Selenium IDE
Name | Zweck |
---|---|
Favoriten | Markieren Sie eine Testsuite als Favorit und führen Sie sie mit einem Klick aus |
Flex Pilot X | Für Flex-basierte Automatisierung |
FlexMonkium | Für Adobe Flex-basierte Aufnahme und Wiedergabe Testen in Selenium IDE |
Dateiprotokollierung | Zum Speichern von Protokollen in einer Datei |
Flow Control | Zur Steuerung des Testausführungsablaufs |
Markieren Sie Elemente | Um ein Web-Steuerelement hervorzuheben |
Implizites Warten | Eine bestimmte Zeit lang auf ein Element warten |
Screenshot bei Fehler | Machen Sie bei einem Fehler einen Screenshot |
Testergebnisse | Gespeichert Testfall Ergebnis für eine Testsuite mit einem Klick |
Das alles und noch viel mehr können Sie hier bekommen SeleniumDownload-Bereich der offiziellen HQ-Website
http://docs.seleniumhq.org/download/
Zusammenfassung
- Es gibt drei Teile davon Selenium IDE, Aktion, Assessoren/Behauptung, Locator-Strategie.
- Wann wird die Benutzererweiterung erstellt? Selenium IDE erfüllt die aktuelle Anforderung nicht.
- Um eine Benutzererweiterung zu erstellen, muss dem Objektprototyp von Selenium JavaScript hinzugefügt werden.
- Nach der Erstellung der Erweiterung muss diese hinzugefügt werden Selenium IDE und starten Sie die IDE neu.
Laden Sie Selenium In diesem Tutorial verwendete Kernerweiterung