Selenium Core-Erweiterungen (User-Extensions.js)

Um Erweiterungen zu verstehen, verstehen wir zunächst die drei Säulen der Selenium-IDE

  1. Aktion: Welchen Vorgang Sie auf dem UI-Bildschirm ausführen

    Selenium Core-Erweiterungen

  2. Prüfer/Behauptung: Welche Überprüfung Sie an den Daten durchführen, die Sie von der Benutzeroberfläche erhalten

Selenium Core-Erweiterungen

  1. Locator-Strategie: Wie können wir das Element in der Benutzeroberfläche finden?

Selenium Core-Erweiterungen

Jetzt verfügt Selenium IDE ü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 einer Selenium-Benutzererweiterung

Um eine Benutzererweiterung für Selenium IDE zu erstellen, müssen wir das Grundkonzept von kennen JavaScript und Javac Skript-Prototyp-Objektkonzept.

Voraussetzung zum Erstellen einer Selenium-Benutzererweiterung

Um Ihre Benutzererweiterung zu erstellen, müssen Sie Java-Skriptmethoden erstellen und diese dem Selenium-Objektprototyp und dem PageBot-Objektprototyp hinzufügen.

Wie erkennt Selenium IDE die Benutzererweiterung?

Nachdem wir beim Starten von Selenium IDE eine Benutzererweiterung zur Selenium IDE hinzugefügt haben, werden alle diese Erweiterungen im Javascript-Prototyp geladen und Selenium IDE erkennt sie anhand ihres Namens.

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 in Selenium IDE hinzufügen, erstellt Selenium IDE selbst eine Wartemethode für diese Aktion. In diesem Fall also, wenn wir erstellen doTextUpperCase Aktion erstellt Selenium IDE 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 ein 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.

Benutzererweiterung erstellen

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?

  1. Gehen Sie zur Selenium-IDE

    Klicken Sie auf Optionen -> Optionen…

Verwenden Sie die neu erstellte Kernerweiterung

  1. Wählen Sie im Abschnitt „Allgemein“ den Speicherort der neu erstellten Selenium Core Extension aus

    Verwenden Sie die neu erstellte Kernerweiterung

  2. Klicken Sie auf OK und starten Sie Selenium IDE neu

Verwenden Sie die neu erstellte Kernerweiterung

  1. Sie finden die Erweiterung in der Befehlsliste

Verwenden Sie die neu erstellte Kernerweiterung

Hier ist eine Liste beliebter Erweiterungen/Plug-Ins, die in der Selenium IDE verwendet werden

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 Geld Testfall Ergebnis für eine Testsuite mit einem Klick

Sie können dies alles und noch viel mehr im Download-Bereich der offiziellen SeleniumHQ-Website herunterladen

http://docs.seleniumhq.org/download/

Zusammenfassung

  • Es gibt drei Teile der Selenium IDE: Aktion, Assessoren/Behauptung, Locator-Strategie.
  • Die Benutzererweiterung wird erstellt, wenn Selenium IDE die aktuellen Anforderungen nicht erfüllt.
  • Um eine Benutzererweiterung zu erstellen, muss Javascript zum Objektprototyp von Selenium hinzugefügt werden.
  • Nach der Erstellung der Erweiterung ist es erforderlich, sie in der Selenium-IDE hinzuzufügen und die IDE neu zu starten.

Laden Sie die in diesem Tutorial verwendete Selenium Core-Erweiterung herunter