For å forstå utvidelser, kan vi først forstå de tre søylene i selen IDE
- Handling: Hvilken operasjon du utfører på UI-skjermen
- Vurderere / påstand: Hvilken bekreftelse du gjør på data du får fra brukergrensesnittet
- 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 , ,,