Da bi razumeli razširitve, najprej razumemo tri stebre selena IDE
- Ukrep: Katero operacijo izvajate na zaslonu uporabniškega vmesnika
- Ocenjevalci / trditev: Kakšno preverjanje opravite na podatkih, ki jih dobite iz uporabniškega vmesnika
- Locator Strategy: Kako lahko najdemo element v uporabniškem vmesniku.
Zdaj ima Selenium IDE zelo zrelo knjižnico z obilico akcij, trditev / ocenjevalcev in lokacijskih strategij.
Toda včasih mu moramo dodati nekaj več funkcionalnosti za naše projektne zahteve. V tem primeru lahko knjižnico razširimo z dodajanjem razširitev po meri. Te razširitve po meri se imenujejo „Uporabniške razširitve“.
Na primer, potrebujemo dejanje, ki lahko besedilo pretvori v velike črke, preden ga vnesemo v spletni element. Tega dejanja ne najdete v privzeti knjižnici akcij. V tem primeru lahko ustvarite svojo "Uporabniško razširitev". V tej vadnici bomo izvedeli, kako ustvariti uporabniško razširitev za pretvorbo besedila v velike črke
Zahteva za ustvarjanje uporabniške razširitve Selenium:
Če želite ustvariti uporabniško razširitev za Selenium IDE, moramo poznati osnovni koncept koncepta objektov JavaScript in Java Script.
Če želite ustvariti svojo uporabniško razširitev, morate ustvariti metode skripta Java in jih dodati prototipu predmeta selenium in prototipu predmeta PageBot.
Kako Selenium IDE prepozna uporabniško razširitev?
Po dodajanju uporabniške razširitve v selenium IDE, ko zaženemo selenium IDE, se naložijo vse te razširitve v prototipu javascript in selenium IDE jih prepozna po njihovem imenu.
Kako ustvariti uporabniško razširitev
Korak 1) Dejanje - vsa dejanja se začnejo z »do«, tj. Če je dejanje za besedilo z velikimi črkami, bo njegovo ime doTextUpperCase. Ko dodamo to metodo dejanja v Selenium IDE, bo Selenium IDE sam ustvaril čakalno metodo za to dejanje. Torej, v tem primeru, ko ustvarimo dejanje doTextUpperCase , bo Selenium IDE ustvaril ustrezno funkcijo čakanja kot TextUpperCaseAndWait . Sprejema lahko dva parametra
Primer: Akcija besedila z velikimi črkami
Selenium.prototype.doTextUpperCase = funkcija (lokator, besedilo) {// Tukaj je findElement sposoben sam obdelovati vse vrste lokatorjev (xpath, css, name, id, className), samo predati moramo besedilo lokatorjavar element = this.page (). findElement (locator);// Ustvari besedilo za tipkanjetext = text.toUpperCase ();// Besedilo elementa zamenjamo z novim besedilomthis.page (). replaceText (element, besedilo);};
Korak 2) Ocenjevalci / trditev - vsi ocenjevalci, registrirani v prototipu selena, bodo imeli predpono
z "get" ali "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Lahko sprejme dva parametra, enega za ciljno in drugega za polje vrednosti v testnem primeru.
Za vsakega ocenjevalca so ustrezne funkcije preverjanja s predpono »preverjanje«, »uveljavitev« in predpono funkcije čakanja z »počakajte«.
Primer: Za ocenjevalce besedila z velikimi črkami
Selenium.prototype.assertTextUpperCase = funkcija (lokator, besedilo) {// Vse strategije lokatorja samodejno obdelajo "findElement"var element = this.page (). findElement (locator);// Ustvari besedilo za preverjanjetext = text.toUpperCase ();// Pridobimo dejansko vrednost elementavar actualValue = element.value;// Prepričajte se, da se dejanska vrednost ujema s pričakovanoAssert.matches (pričakovana vrednost, dejanska vrednost);};Selenium.prototype.isTextEqual = funkcija (lokator, besedilo) {vrni this.getText (lokator) .value === besedilo;};Selenium.prototype.getTextValue = funkcija (lokator, besedilo) {vrni this.getText (locator) .value;};
3. korak) Strategija lokatorja - če želimo ustvariti lastno funkcijo za iskanje elementa, potem
prototip PageBot moramo razširiti s funkcijo s predpono "locateElementBy."
Potrebna bosta dva parametra, prvi bo niz lokatorja, drugi pa dokument
kjer ga je treba iskati.
Primer: za iskalnik velikih črk
// "inDocument" je dokument, ki ga iščete.PageBot.prototype.locateElementByUpperCase = funkcija (besedilo, inDocument) {// Ustvari besedilo za iskanjevar pričakovana vrednost = text.toUpperCase ();// Preglejte vse elemente in poiščite tiste, ki jih imajo// vrednost === naša pričakovana vrednostvar allElements = inDocument.getElementsByTagName ("*");// Ta zvezda '*' je neke vrste regularni izraz, ki bo šel skozi vsak element (v HTML DOM ima vsak element zagotovo ime oznake, kot so , ,,