Selen Core Extensions (User-Extensions.js)

Innholdsfortegnelse:

Anonim

For å forstå utvidelser, kan vi først forstå de tre søylene i selen IDE

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

  2. Vurderere / påstand: Hvilken bekreftelse du gjør på data du får fra brukergrensesnittet

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

Nå har Selen IDE et veldig modent bibliotek med mange handlinger, påstander / vurderere og lokaliseringsstrategier.

Men noen ganger må vi legge til litt mer funksjonalitet i det for prosjektkravene våre. I den situasjonen kan vi utvide dette biblioteket ved å legge til våre tilpassede utvidelser. Disse egendefinerte utvidelsene kalles 'User Extension'.

For eksempel trenger vi en handling som kan konvertere teksten til store bokstaver før den fylles ut i et webelement. Du finner ikke denne handlingen i standardhandlingsbiblioteket. I slike tilfeller kan du opprette din egen 'User Extension'. I denne opplæringen vil vi lære hvordan du lager brukerutvidelse for å konvertere tekst til store bokstaver

Krav om å lage Selenium-brukerutvidelse:

For å lage brukerutvidelse for Selen IDE, trenger vi å kjenne det grunnleggende konseptet med JavaScript og Java Script prototype objektkonsept.

For å opprette brukerutvidelsen din, må du opprette Java-skriptmetoder og legge dem til selen-objektprototypen og PageBot-objektprototypen.

Hvordan Selenium IDE gjenkjenner brukerutvidelse?

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

Hvordan lage brukerutvidelse

Trinn 1) Handling - alle handlinger startes av "gjør", dvs. hvis handlingen er for store bokstaver, vil navnet DoTextUpperCase. Når vi legger til denne handlingsmetoden i Selen IDE, vil Selen IDE selv opprette en ventemetode for denne handlingen. Så i dette tilfellet når vi oppretter doTextUpperCase- handling, vil Selen IDE opprette en tilsvarende ventefunksjon som TextUpperCaseAndWait . Den kan akseptere to parametere

Eksempel: Handling med store bokstaver

Selenium.prototype.doTextUpperCase = funksjon (locator, tekst) {// Here findElement er i stand til å håndtere alle typer locator (xpath, css, name, id, className), vi trenger bare å sende locator-tekstenvar element = this.page (). findElement (locator);// Lag teksten du vil skrivetekst = text.toUpperCase ();// Erstatt elementteksten med den nye tekstenthis.page (). erstatt Tekst (element, tekst);};

Trinn 2) Vurderere / påstander - Alle vurderere som er registrert i prototyp av selenobjekt, vil være foran

ved "få" eller "er" Eks. getValueFromCompoundTable, isValueFromCompoundTable. Det kan akseptere to parametere, en for mål og en annen for verdifelt i testtilfelle.

For hver vurderer vil det være korresponderende bekreftelsesfunksjoner foran "verifisere", "påstå" og ventefunksjonsprefikset med "ventFor"

Eksempel: For versaler av store bokstaver

Selenium.prototype.assertTextUpperCase = funksjon (locator, tekst) {// Alle lokaliseringsstrategier håndteres automatisk av "findElement"var element = this.page (). findElement (locator);// Lag teksten for å bekreftetekst = text.toUpperCase ();// Få den faktiske elementverdienvar actualValue = element.value;// Sørg for at den faktiske verdien samsvarer med forventetAssert.matches (forventet verdi, faktisk verdi);};Selenium.prototype.isTextEqual = funksjon (lokalisering, tekst) {returner this.getText (locator) .verdi === tekst;};Selenium.prototype.getTextValue = funksjon (locator, tekst) {returner this.getText (locator) .value;};

Trinn 3) Locator-strategi - 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

der det må søkes.

Eksempel: For tekstbokstav i store bokstaver

// "inDocument" er et dokument du søker etter.PageBot.prototype.locateElementByUpperCase = funksjon (tekst, inDocument) {// Lag teksten du vil søke ettervar expectValue = text.toUpperCase ();// Bla gjennom alle elementene, på jakt etter de som har// en verdi === vår forventede verdivar allElements = inDocument.getElementsByTagName ("*");// Denne stjernen '*' er et slags vanlig uttrykk den vil gå gjennom hvert element (i HTML DOM har hvert element sikkert et tagnavn som , ,

, , ,
etc.). Her er motivet vårt å finne et element som samsvarer med store bokstaver vi har passert, så vi vil søke i det med alle elementene, og når vi får samsvar, vil vi ha riktig webelement.for (var i = 0; i

Hvordan bruker jeg nyopprettet kjerneutvidelse?

  1. Gå til Selen IDE

    Klikk på Alternativer -> Alternativer ...

  1. I Generelt-delen velger du plasseringen til den nyopprettede Selen Core Extension

  2. Klikk OK og start Selen IDE på nytt

  1. Du finner utvidelsen i kommandolisten

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

Navn Hensikt
Favoritter For å markere 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 avspillingstesting i Selen IDE
Fillogging For lagring av logger i en fil
Flytkontroll For å kontrollere testutførelsesflyten
Fremhev elementer For å markere en webkontroll
Implisitt Vent Å vente på et element i en viss tidsgrense
Skjermbilde på feil Ta et skjermbilde på feil
Testresultater Lagre resultatet av testsaken for en testpakke med ett klikk

Du kan få alt dette og mange flere fra SeleniumHQ offisielle nettsteds nedlastingsseksjon

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

Sammendrag:

  • Det er tre deler av Selen IDE, Action, Assessors / Assertion, Locator-strategi.
  • Brukerutvidelse opprettes når Selenium IDE ikke oppfyller gjeldende krav.
  • For å opprette brukerutvidelse er det nødvendig å legge til javascript til selen's objektprototype.
  • Etter at utvidelsen er opprettet, er det nødvendig å legge den til i Selenium IDE og starte IDE på nytt.

Last ned Selenium Core Extension som brukes i denne veiledningen