Um Erweiterungen zu verstehen, verstehen wir zunächst die drei Säulen der Selen-IDE
- Aktion: Welche Operation führen Sie auf dem UI-Bildschirm aus?
- Assessoren / Behauptung: Welche Überprüfung führen Sie für Daten durch, die Sie von der Benutzeroberfläche erhalten?
- Locator-Strategie: Wie finden wir das Element in der Benutzeroberfläche?
Jetzt verfügt Selenium IDE über eine sehr ausgereifte Bibliothek mit zahlreichen Aktionen, Assertion / Assessors und Locator-Strategien.
Manchmal müssen wir jedoch weitere Funktionen für unsere Projektanforderungen hinzufügen. In diesem Fall können wir diese Bibliothek erweitern, indem wir unsere benutzerdefinierten Erweiterungen hinzufügen. Diese benutzerdefinierten Erweiterungen werden als "Benutzererweiterung" bezeichnet.
Zum Beispiel benötigen wir eine Aktion, die den Text in Großbuchstaben konvertieren kann, bevor er in ein Webelement gefüllt 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 einer Selenium-Benutzererweiterung:
Um eine Benutzererweiterung für Selenium IDE zu erstellen, müssen wir das Grundkonzept des JavaScript- und Java Script-Prototyp-Objektkonzepts kennen.
Um Ihre Benutzererweiterung zu erstellen, müssen Sie Java-Skriptmethoden erstellen und sie dem Selen-Objekt-Prototyp und dem PageBot-Objekt-Prototyp hinzufügen.
Wie erkennt Selenium IDE die Benutzererweiterung?
Nach dem Hinzufügen der Benutzererweiterung zur Selenium-IDE beim Starten der Selenium-IDE werden alle diese Erweiterungen im Javascript-Prototyp geladen, und die Selenium-IDE erkennt sie an ihrem Namen.
So erstellen Sie eine Benutzererweiterung
Schritt 1) Aktion - Alle Aktionen werden mit "do" gestartet. Wenn es sich bei der Aktion um Großbuchstaben handelt, lautet der Name doTextUpperCase. Wenn wir diese Aktionsmethode in Selenium IDE hinzufügen, erstellt Selenium IDE selbst eine Wartemethode für diese Aktion. In diesem Fall erstellt Selenium IDE beim Erstellen der Aktion doTextUpperCase eine entsprechende Wartefunktion als TextUpperCaseAndWait . Es können zwei Parameter akzeptiert werden
Beispiel: Textaktion in Großbuchstaben
Selenium.prototype.doTextUpperCase = Funktion (Locator, Text) {// Hier kann findElement selbst alle Arten von Locatoren verarbeiten (xpath, css, name, id, className). Wir müssen nur den Locator-Text übergebenvar element = this.page (). findElement (locator);// Erstellen Sie den zu tippenden Texttext = text.toUpperCase ();// Ersetze den Elementtext durch den neuen Textthis.page (). replaceText (Element, Text);};
Schritt 2) Assessoren / Behauptung - Allen im Selenobjekt-Prototyp registrierten Assessoren wird ein Präfix vorangestellt
durch "get" oder "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Es können zwei Parameter akzeptiert werden, einer für das Zielfeld und einer für das Wertefeld im Testfall.
Für jeden Assessor gibt es entsprechende Überprüfungsfunktionen mit dem Präfix "verify", "assert" und dem Präfix "waitFor" für die Wartefunktion.
Beispiel: Für Textprüfer in Großbuchstaben
Selenium.prototype.assertTextUpperCase = Funktion (Locator, Text) {// Alle Locator-Strategien werden automatisch von "findElement" behandeltvar element = this.page (). findElement (locator);// Erstellen Sie den zu überprüfenden Texttext = text.toUpperCase ();// Den tatsächlichen Elementwert abrufenvar actualValue = element.value;// Stellen Sie sicher, dass der tatsächliche Wert dem erwarteten Wert entsprichtAssert.matches (expectedValue, actualValue);};Selenium.prototype.isTextEqual = Funktion (Locator, Text) {return this.getText (locator) .value === text;};Selenium.prototype.getTextValue = Funktion (Locator, Text) {return this.getText (locator) .value;};
Schritt 3) Locator-Strategie - Wenn wir eine eigene Funktion zum Lokalisieren 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 es gesucht werden muss.
Beispiel: Für Text Locator in Großbuchstaben
// Das "inDocument" ist ein Dokument, das Sie suchen.PageBot.prototype.locateElementByUpperCase = Funktion (Text, inDocument) {// Erstellen Sie den zu suchenden Textvar expectedValue = text.toUpperCase ();// Durchlaufe alle Elemente und suche nach solchen, die haben// ein Wert === unser erwarteter Wertvar allElements = inDocument.getElementsByTagName ("*");// Dieser Stern '*' ist eine Art regulärer Ausdruck, der jedes Element durchläuft (im HTML-DOM hat jedes Element sicherlich einen Tag-Namen wie , ,,