Lai saprastu paplašinājumus, vispirms jāsaprot trīs selēna IDE pīlāri
- Darbība: kāda darbība tiek veikta lietotāja saskarnes ekrānā
- Vērtētāji / apgalvojums: kādu verifikāciju veicat no lietotāja saskarnes saņemtajiem datiem
- Lokatora stratēģija: kā mēs varam atrast elementu lietotāja saskarnē.
Tagad Selenium IDE ir ļoti nobriedusi bibliotēka ar daudzām darbībām, apgalvojumiem / vērtētājiem un lokatoru stratēģijām.
Bet dažreiz mums ir jāpievieno vēl kāda funkcionalitāte mūsu projekta prasībām. Šādā situācijā mēs varam paplašināt šo bibliotēku, pievienojot savus pielāgotos paplašinājumus. Šos pielāgotos paplašinājumus sauc par “Lietotāju paplašinājumiem”.
Piemēram, mums ir nepieciešama darbība, kas tekstu var pārveidot lielajiem burtiem, pirms to aizpilda tīmekļa elementā. Šo darbību nevar atrast noklusējuma darbību bibliotēkā. Šādā gadījumā jūs varat izveidot savu lietotāja paplašinājumu. Šajā apmācībā mēs uzzināsim, kā izveidot lietotāja paplašinājumu, lai tekstu pārveidotu par lielo burtu
Prasība izveidot Selenium lietotāja paplašinājumu:
Lai izveidotu lietotāja paplašinājumu Selenium IDE, mums jāzina JavaScript un Java Script prototipa objekta koncepcijas pamatjēdziens.
Lai izveidotu lietotāja paplašinājumu, jums jāizveido Java skriptu metodes un jāpievieno tās selēna objekta prototipam un PageBot objekta prototipam.
Kā Selenium IDE atpazīst lietotāja paplašinājumu?
Pēc lietotāja paplašinājuma pievienošanas Selenium IDE, kad mēs sākam Selenium IDE, visi šie javascript prototipa paplašinājumi tiek ielādēti, un Selenium IDE tos atpazīst pēc nosaukuma.
Kā izveidot lietotāja paplašinājumu
1. solis) Darbība - visas darbības sāk “do”, ti, ja darbība ir paredzēta lielajiem burtiem, tā nosaukums būs doTextUpperCase. Kad mēs pievienosim šo darbības metodi Selenium IDE, Selenium IDE pats izveidos šīs darbības gaidīšanas metodi. Tāpēc šajā gadījumā, kad mēs izveidojam darbību doTextUpperCase , Selenium IDE izveidos atbilstošu gaidīšanas funkciju kā TextUpperCaseAndWait . Tas var pieņemt divus parametrus
Piemērs: lielo burtu teksta darbība
Selenium.prototype.doTextUpperCase = funkcija (lokators, teksts) {// Šeit findElement pats spēj apstrādāt visu veidu lokatoru (xpath, css, name, id, className). Mums vienkārši jānodod lokatora tekstsvar elements = this.lapa (). findElement (lokators);// Izveidojiet tekstu, kuru vēlaties rakstītteksts = text.toUpperCase ();// Nomainiet elementa tekstu ar jauno tekstuthis.page (). aizstātText (elements, teksts);};
2. solis) Vērtētāji / apgalvojums - visi novērtētāji, kas reģistrēti selēna objekta prototipā, tiks prefiksēti
ar "get" vai "ir" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Tas var pieņemt divus parametrus, vienu mērķim un otru vērtības laukam testa gadījumā.
Katram vērtētājam būs atbilstošas verifikācijas funkcijas, kuru prefikss ir "pārbaudīt", "apgalvot", un gaidīšanas funkcijas prefikss ar "waitFor"
Piemērs: Lielo lietu teksta vērtētājiem
Selenium.prototype.assertTextUpperCase = funkcija (lokators, teksts) {// Visas lokatora stratēģijas automātiski apstrādā "findElement"var elements = this.lapa (). findElement (lokators);// Izveidojiet pārbaudāmo tekstuteksts = text.toUpperCase ();// Iegūstiet faktisko elementa vērtībuvar actualValue = elements.value;// Pārliecinieties, vai faktiskā vērtība atbilst gaidītajaiAssert.matches (paredzamā vērtība, faktiskā vērtība);};Selenium.prototype.isTextEqual = funkcija (lokators, teksts) {atgriezt šo.getText (lokators) .value === tekstu;};Selenium.prototype.getTextValue = funkcija (lokators, teksts) {atgriezt šo.getText (locator) .value;};
3. solis. Lokatora stratēģija - ja mēs vēlamies izveidot savu funkciju, lai atrastu elementu
mums jāpaplašina PageBot prototips ar funkciju ar prefiksu "locateElementBy".
Tam būs nepieciešami divi parametri, vispirms būs lokatora virkne, bet otrais - dokuments
kur tas ir jāmeklē.
Piemērs: lielo burtu teksta lokatoram
// "inDocument" ir dokuments, kuru meklējat.PageBot.prototype.locateElementByUpperCase = funkcija (teksts, inDocument) {// Izveidojiet meklējamo tekstuvar paredzētāValue = text.toUpperCase ();// Aplūkojiet visus elementus, meklējot tos, kuriem ir// a vērtība === mūsu paredzamā vērtībavar allElements = inDocument.getElementsByTagName ("*");// Šī zvaigzne '*' ir sava veida regulāra izteiksme, kas iet cauri visiem elementiem (HTML DOM katrā elementā noteikti ir taga nosaukums, piemēram, , ,, , ,