For at forstå udvidelser, lad os først forstå de tre søjler i selen IDE
- Handling: Hvilken handling du udfører på UI-skærmen
- Bedømmere / påstand: Hvilken verifikation du foretager på data, du får fra brugergrænsefladen
- Locator Strategy: Hvordan kan vi finde elementet i brugergrænsefladen.
Nu har Selen IDE et meget modent bibliotek med masser af handlinger, påstand / vurderere og lokaliseringsstrategier.
Men nogle gange er vi nødt til at tilføje noget mere funktionalitet til det efter 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, der kan konvertere teksten til store bogstaver, inden den udfyldes i et webelement. Du kan ikke finde denne handling i standardhandlingsbiblioteket. I et sådant tilfælde kan du oprette din egen 'Brugerudvidelse'. I denne vejledning lærer vi, hvordan man opretter brugerudvidelse til at konvertere tekst til store bogstaver
Krav om at oprette Selenium-brugerudvidelse:
For at oprette brugerudvidelse til Selen IDE skal vi kende det grundlæggende koncept for JavaScript og Java Script-prototype-objektkoncept.
For at oprette din brugerudvidelse skal du oprette Java-scriptmetoder og tilføje dem til selen-objektprototypen og PageBot-objektprototypen.
Hvordan Selenium IDE genkender brugerudvidelse?
Efter tilføjelse af brugerudvidelse til Selen IDE, når vi starter Selen IDE, indlæses alle disse udvidelser i javascript-prototype, og Selen IDE genkender dem ved deres navn.
Sådan oprettes brugerudvidelse
Trin 1) Handling - alle handlinger startes med "udfør", dvs. hvis handlingen er for store bogstaver, vil dens navn være doTextUpperCase. Når vi tilføjer denne handlingsmetode i Selen IDE, opretter Selen IDE selv en ventemetode til denne handling. Så i dette tilfælde, når vi opretter doTextUpperCase- handling, opretter Selen IDE en tilsvarende ventefunktion som TextUpperCaseAndWait . Det kan acceptere to parametre
Eksempel: Handling med store bogstaver
Selenium.prototype.doTextUpperCase = funktion (locator, tekst) {// Here findElement er i sig selv i stand til at håndtere alle typer locator (xpath, css, name, id, className), vi skal bare videregive locator-tekstenvar element = this.page (). findElement (locator);// Opret teksten for at skrivetekst = text.toUpperCase ();// Erstat elementteksten med den nye tekstthis.page (). erstatte tekst (element, tekst);};
Trin 2) Vurderere / påstande - Alle vurderere, der er registreret i selen-objekt-prototype, vil være præfikset
ved "get" eller "er" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Det kan acceptere to parametre, en for mål og en anden for værdifelt i testtilfælde.
For hver vurderer vil der være tilsvarende verifikationsfunktioner forud for "verificere", "hævde" og ventefunktionspræfikset for "waitFor"
Eksempel: For bedømmer af store bogstaver
Selenium.prototype.assertTextUpperCase = funktion (locator, tekst) {// Alle lokaliseringsstrategier håndteres automatisk af "findElement"var element = this.page (). findElement (locator);// Opret teksten for at bekræftetekst = text.toUpperCase ();// Få den faktiske elementværdivar actualValue = element.value;// Sørg for, at den faktiske værdi svarer til den forventedeAssert.matches (forventet værdi, faktisk værdi);};Selenium.prototype.isTextEqual = funktion (lokalisering, tekst) {returner this.getText (locator). værdi === tekst;};Selenium.prototype.getTextValue = funktion (locator, tekst) {returner this.getText (locator) .værdi;};
Trin 3) Locator-strategi - Hvis vi ønsker at oprette vores egen funktion til at finde et element, så
vi er nødt til at udvide PageBot-prototypen med en funktion med præfikset "findElementBy."
Det tager to parametre, det første vil være lokaliseringsstrengen og det andet vil være dokumentet
hvor det skal søges.
Eksempel: Til lokalisering af store bogstaver
// "inDocument" er et dokument, du søger efter.PageBot.prototype.locateElementByUpperCase = funktion (tekst, inDocument) {// Opret teksten, du vil søge eftervar expectValue = text.toUpperCase ();// Loop gennem alle elementer, på udkig efter dem der har// en værdi === vores forventede værdivar allElements = inDocument.getElementsByTagName ("*");// Denne stjerne '*' er en slags regulært udtryk, den vil gå gennem hvert element (i HTML DOM har hvert element helt sikkert et tagnavn som , ,,