Selenium Kjerneutvidelser (User-Extensions.js)

For å forstå utvidelser, la oss først forstå de tre pilarene i selen IDE

  1. Handling: Hvilken operasjon du utfører på UI-skjermen

    Selenium Kjerneutvidelser

  2. Assessorer/påstand: Hvilken verifisering du gjør på data du får fra UI

Selenium Kjerneutvidelser

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

Selenium Kjerneutvidelser

Nå, Selenium IDE har et veldig modent bibliotek med mange handlinger, påstander/bedømmere og lokaliseringsstrategier.

Men noen ganger må vi legge til litt mer funksjonalitet til det for våre prosjektkrav. I den situasjonen kan vi utvide dette biblioteket ved å legge til våre tilpassede utvidelser. Disse tilpassede utvidelsene kalles "Brukerutvidelse".

For eksempel trenger vi en handling som kan konvertere teksten til store bokstaver før vi fyller den inn i et webelement. Du finner ikke denne handlingen i standardhandlingsbiblioteket. I slike tilfeller kan du opprette din egen "Brukerutvidelse". I denne opplæringen lærer vi hvordan du oppretter brukerutvidelse for å konvertere tekst til store bokstaver

Krav for å lage Selenium brukerutvidelse

For å lage brukerutvidelse for Selenium IDE, må vi vite det grunnleggende konseptet JavaScript og Java Skriptprototypeobjektkonsept.

Krav for å opprette Selenium brukerutvidelse

For å opprette brukerutvidelsen din må du opprette Java skriptmetoder og legg dem til selenobjektprototypen og PageBot-objektprototypen.

Hvordan Selenium IDE gjenkjenner brukerutvidelse?

Etter å ha lagt til brukerutvidelse til Selenium IDE når vi starter Selenium IDE, alle disse utvidelsene i javascript-prototypen blir lastet, og Selenium IDE gjenkjenner dem ved navn.

Hvordan lage brukerutvidelse

Trinn 1) Handling– alle handlinger startes med "do", dvs. hvis handlingen er for store bokstaver, vil navnet være doTextUpperCase. Når vi legger til denne handlingsmetoden i Selenium SDI, Selenium IDE vil selv lage en ventemetode for denne handlingen. Så i dette tilfellet når vi lager doTextUpperCase handling, Selenium IDE vil lage en tilsvarende ventefunksjon som TextUpperCaseAndWait. Den kan godta to parametere

Eksempel: Teksthandling med store bokstaver

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

Trinn 2) Bedømmere/påstand- Alle bedømmere som er registrert i selenobjektprototype vil bli prefiks

ved "get" eller "er" Eks. getValueFromCompoundTable , isValueFromCompoundTable . Den kan godta to parametere, en for mål og andre for verdifelt i testtilfelle.

Opprett brukerutvidelse

For hver Assessor vil det være korresponderende verifikasjonsfunksjoner foran med "verify", "assert" og ventefunksjonsprefikset med "waitFor"

Eksempel: For tekstbedømmere i store bokstaver

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

Trinn 3) Lokaliseringsstrategi- Hvis vi ønsker å lage vår egen funksjon for å finne et element da

vi må utvide PageBot-prototypen med en funksjon med prefikset "locateElementBy."

Det vil ta to parametere, den første vil være lokaliseringsstrengen og den andre vil være dokumentet

hvor det må søkes.

Eksempel: For tekstsøker for store bokstaver

// 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 bruke nyopprettet kjerneutvidelse?

  1. Gå til Selenium IDE

    Klikk på Alternativer -> Alternativer...

Bruk nyopprettet Core Extension

  1. I seksjonen Generelt velger du plasseringen til den nyopprettede Selenium Kjerneforlengelse

    Bruk nyopprettet Core Extension

  2. Klikk OK og start på nytt Selenium IDE

Bruk nyopprettet Core Extension

  1. Du finner utvidelsen i kommandolisten

Bruk nyopprettet Core Extension

Her er en liste over populære utvidelser/plugin-moduler som brukes i Selenium IDE

Navn Formål
Favoritter For å merke en testpakke som favoritt og utføre dem med ett klikk
Flex Pilot X For Flex-basert automatisering
FlexMonkium For Adobe Flex-basert opptak og avspilling Testing in Selenium IDE
Fillogging For å lagre logger i en fil
Flytkontroll For å kontrollere flyten av testutførelse
Marker elementer For å markere en webkontroll
Implisitt vent Å vente på et element for en viss tidsbegrensning
Skjermbilde ved feil Ta et skjermbilde ved feil
Testresultater Spar Testsak resultat for en testpakke med ett klikk

Du kan få alle disse og mange flere fra SeleniumHQ offisielle nettsteds nedlastingsseksjon

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

Sammendrag

  • Det er tre deler av Selenium IDE, Action, Assessors/Assertion, Locator-strategi.
  • Brukerutvidelse opprettes, når Selenium IDE oppfyller ikke gjeldende krav.
  • For å lage brukerutvidelse er det nødvendig å legge til javascript til selens objektprototype.
  • Etter opprettelse av utvidelse, er det nødvendig å legge den til Selenium IDE og start IDE på nytt.

Last ned Selenium Core Extension brukt i denne opplæringen