Selenium Kerneudvidelser (User-Extensions.js)

For at forstå udvidelser, lad os først forstå de tre søjler i selenium IDE

  1. Handling: Hvad operation, 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 , 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 selenium objektprototype og PageBot objektprototype.

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 er tilmeldt selenium objektprototype vil blive foranstillet

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 selenium's 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