Da bismo razumjeli ekstenzije, dopustimo prvo razumjeti tri stupa selena IDE
- Akcija: Koju operaciju izvodite na zaslonu korisničkog sučelja
- Procjenitelji / tvrdnja: Koju provjeru vršite na podacima koje dobivate iz korisničkog sučelja
- Strategija lokatora: Kako možemo pronaći element u korisničkom sučelju.
Sada Selenium IDE ima vrlo zrelu biblioteku s puno akcija, tvrdnji / procjenitelja i strategija lokatora.
Ali ponekad mu trebamo dodati još neke funkcionalnosti za potrebe našeg projekta. U toj situaciji ovu biblioteku možemo proširiti dodavanjem prilagođenih proširenja. Ta se prilagođena proširenja nazivaju 'Korisničko proširenje'.
Na primjer, trebamo akciju koja tekst može pretvoriti u velika slova prije nego što ga ispunimo web elementom. Ovu akciju ne možete pronaći u zadanoj biblioteci akcija. U tom slučaju možete stvoriti vlastito 'Korisničko proširenje'. U ovom uputstvu naučit ćemo kako stvoriti korisničko proširenje za pretvaranje teksta u velika slova
Zahtjev za stvaranje korisničkog proširenja Selenium:
Da bismo kreirali korisničko proširenje za Selenium IDE, moramo znati osnovni koncept koncepta objekta JavaScript i Java Script.
Da biste kreirali svoje korisničko proširenje, morate stvoriti metode skripte Java i dodati ih prototipu objekta selenium i PageBot objektu.
Kako Selenium IDE prepoznaje korisničko proširenje?
Nakon dodavanja korisničkog proširenja u Selenium IDE kada pokrenemo Selenium IDE, sva se ova proširenja u prototipu javascripta učitavaju i Selenium IDE ih prepoznaje po imenu.
Kako stvoriti korisničko proširenje
Korak 1) Akcija - sve radnje započinje "do", tj. Ako je radnja za tekst velikih slova, naziv će joj biti doTextUpperCase. Kada dodamo ovu metodu radnje u Selenium IDE, Selenium IDE će sam stvoriti metodu čekanja za ovu radnju. Dakle, u ovom slučaju kada kreiramo akciju doTextUpperCase , Selenium IDE će stvoriti odgovarajuću funkciju čekanja kao TextUpperCaseAndWait . Može prihvatiti dva parametra
Primjer: Tekst velikih slova
Selenium.prototype.doTextUpperCase = funkcija (lokator, tekst) {// Ovdje je findElement sam sposoban za obradu svih vrsta lokatora (xpath, css, name, id, className), samo trebamo proslijediti tekst lokatoravar element = this.page (). findElement (locator);// Stvaranje teksta za upisivanjetext = text.toUpperCase ();// Zamijenite tekst elementa novim tekstomthis.page (). replaceText (element, tekst);};
Korak 2) Procjenitelji / tvrdnja - Svi procjenitelji registrirani u prototipu selenovog objekta bit će s predfiksom
"get" ili "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Može prihvatiti dva parametra, jedan za cilj i drugi za polje vrijednosti u testnom slučaju.
Za svakog procjenitelja postojat će odgovarajuće funkcije provjere s prefiksom "verify", "assert", a prefiks funkcije wait s "waitFor"
Primjer: Za procjenitelje teksta velikih slova
Selenium.prototype.assertTextUpperCase = funkcija (lokator, tekst) {// "Pronađi element" automatski obrađuje sve strategije lokatoravar element = this.page (). findElement (locator);// Stvorimo tekst za provjerutext = text.toUpperCase ();// Dobivanje stvarne vrijednosti elementavar actualValue = element.value;// Provjerite odgovara li stvarna vrijednost očekivanojAssert.matches (očekivana vrijednost, stvarna vrijednost);};Selenium.prototype.isTextEqual = funkcija (lokator, tekst) {vrati this.getText (lokator) .value === tekst;};Selenium.prototype.getTextValue = funkcija (lokator, tekst) {vrati this.getText (locator) .value;};
Korak 3) Strategija lokatora - Ako tada želimo stvoriti vlastitu funkciju za lociranje elementa
trebamo proširiti prototip PageBot funkcijom s prefiksom "locateElementBy."
Potrebna su dva parametra, prvi će biti niz lokatora, a drugi dokument
gdje je treba pretražiti.
Primjer: za lokator teksta velikih slova
// "InDocument" je dokument koji tražite.PageBot.prototype.locateElementByUpperCase = funkcija (tekst, inDocument) {// Stvaranje teksta za traženjevar očekujeValue = text.toUpperCase ();// Prelistaj sve elemente, tražeći one koji jesu// vrijednost === naša očekivana vrijednostvar allElements = inDocument.getElementsByTagName ("*");// Ova zvijezda '*' vrsta je regularnog izraza koji će proći kroz svaki element (u HTML DOM-u svaki element zasigurno ima naziv oznake poput , ,,