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

Oppsummer dette innlegget med: