Selenium Kerneudvidelser (User-Extensions.js)

For at forstรฅ udvidelser, lad os fรธrst forstรฅ de tre sรธjler af selen IDE

  1. Handling: Hvilken handling du udfรธrer pรฅ UI-skรฆrmen

    Selenium Kerneudvidelser

  2. Assessorer/pรฅstand: Hvilken verifikation du foretager pรฅ data, du fรฅr fra UI

Selenium Kerneudvidelser

  1. Locator Strategy: Hvordan kan vi finde elementet i UI.

Selenium Kerneudvidelser

Nu Selenium IDE har et meget modent bibliotek med masser af Actions, Assertion/Assessors og Locator Strategies.

Men nogle gange er vi nรธdt til at tilfรธje noget mere funktionalitet til det for vores projektkrav. I den situation kan vi udvide dette bibliotek ved at tilfรธje vores tilpassede udvidelser. Disse brugerdefinerede udvidelser kaldes 'Brugerudvidelse'.

For eksempel har vi brug for en handling, som kan konvertere teksten til store bogstaver, fรธr den udfyldes i et webelement. Du kan ikke finde denne handling i standardhandlingsbiblioteket. I sรฅdanne tilfรฆlde kan du oprette din egen 'Brugerudvidelse'. I denne vejledning lรฆrer vi, hvordan du opretter brugerudvidelse for at konvertere tekst til store bogstaver

Krav til oprettelse Selenium brugerudvidelse

For at oprette brugerudvidelse til Selenium IDE, vi skal kende grundbegrebet JavaScript og Java Script prototype objekt koncept.

Krav til oprettelse Selenium brugerudvidelse

For at oprette din brugerudvidelse skal du oprette Java script-metoder og tilfรธje dem til selenobjektprototypen og PageBot-objektprototypen.

Hvordan Selenium IDE genkender User Extension?

Efter tilfรธjelse af brugerudvidelse til Selenium IDE nรฅr vi starter Selenium IDE, alle disse udvidelser i javascript prototype bliver indlรฆst, og Selenium IDE genkender dem ved deres navn.

Sรฅdan opretter du brugerudvidelse

Trin 1) Handlingโ€“ alle handlinger startes med "do", dvs. hvis handlingen er for store bogstaver, vil dens navn vรฆre doTextUpperCase. Nรฅr vi tilfรธjer denne handlingsmetode Selenium SDI, Selenium IDE vil selv oprette en ventemetode for denne handling. Sรฅ i dette tilfรฆlde, nรฅr vi skaber doTextUpperCase handling, Selenium IDE vil oprette en tilsvarende ventefunktion som TextUpperCaseAndWait. Den kan acceptere to parametre

Eksempel: Teksthandling med store bogstaver

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);
    };

Trin 2) Bedรธmmere/pรฅstand- Alle bedรธmmere, der er registreret i selenobjektprototype, vil blive prรฆfikset

ved "fรฅ" eller "er" Eks. getValueFromCompoundTable , isValueFromCompoundTable . Den kan acceptere to parametre, en for mรฅl og en anden for vรฆrdifelt i testcase.

Opret brugerudvidelse

For hver Assessor vil der vรฆre tilsvarende verifikationsfunktioner foran med "verify", "assert" og ventefunktionsprรฆfikset med "waitFor"

Eksempel: For tekstbedรธmmere med store bogstaver

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;
    };

Trin 3) Lokaliseringsstrategi- Hvis vi รธnsker at oprette vores egen funktion til at lokalisere et element, sรฅ

vi skal udvide PageBot-prototypen med en funktion med prรฆfikset "locateElementBy."

Det vil tage to parametre, den fรธrste vil vรฆre lokaliseringsstrengen og den anden vil vรฆre dokumentet

hvor det skal sรธges.

Eksempel: Til tekstsรธgning af store bogstaver

// 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;
    };

Hvordan bruger man nyoprettet kerneudvidelse?

  1. Gรฅ til Selenium IDE

    Klik pรฅ Indstillinger -> Indstillinger...

Brug nyoprettet Core Extension

  1. I afsnittet Generelt skal du vรฆlge placeringen af โ€‹โ€‹den nyoprettede Selenium Kerneudvidelse

    Brug nyoprettet Core Extension

  2. Klik pรฅ OK og genstart Selenium IDE

Brug nyoprettet Core Extension

  1. Du finder udvidelsen i kommandolisten

Brug nyoprettet Core Extension

Her er en liste over populรฆre udvidelser/plug-in, der bruges i Selenium IDE

Navn Formรฅl
foretrukne At markere en testsuite som favorit og udfรธre dem med et enkelt klik
Flex Pilot X Til Flex baseret automatisering
FlexMonkium Til Adobe Flex-baseret optagelse og afspilning Test in Selenium IDE
Fillogning Til at gemme logfiler i en fil
Flow Kontrol For at kontrollere testudfรธrelsesflowet
Fremhรฆv elementer For at fremhรฆve en webkontrol
Implicit Vent At vente pรฅ et element i en bestemt tidsgrรฆnse
Skรฆrmbillede ved fejl Tag et skรฆrmbillede af fejl
Test resultater Gem Test sag resultat for en testsuite med et enkelt klik

Du kan fรฅ dem alle og mange flere fra SeleniumHQ's officielle sides downloadsektion

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

Resumรฉ

  • Der er tre dele af Selenium IDE, Action, Assessors/Assertion, Locator strategi.
  • Brugerudvidelse oprettes, nรฅr Selenium IDE opfylder ikke det nuvรฆrende krav.
  • For at oprette brugerudvidelse er det nรธdvendigt at tilfรธje javascript til seleniums objektprototype.
  • Efter oprettelse af udvidelse er det nรธdvendigt at tilfรธje det Selenium IDE og genstart IDE.

Download Selenium Core Extension brugt i denne selvstudie

Opsummer dette indlรฆg med: