Norėdami suprasti plėtinius, pirmiausia supraskite tris seleno IDE atramas
- Veiksmas: kokią operaciją atliekate vartotojo sąsajos ekrane
- Vertintojai / tvirtinimas: kokį patikrinimą atliekate iš vartotojo sąsajos gautų duomenų atžvilgiu
- Vietos nustatymo strategija: kaip mes galime rasti elementą vartotojo sąsajoje.
Dabar „Selenium IDE“ yra labai subrendusi biblioteka, kurioje yra daugybė veiksmų, teiginių / vertintojų ir vietos nustatymo strategijų.
Tačiau kartais mes turime pridėti dar keletą funkcionalumų, kad atitiktų mūsų projekto reikalavimus. Tokiu atveju šią biblioteką galime išplėsti pridėdami savo tinkintus plėtinius. Šie tinkinti plėtiniai vadinami „Vartotojo plėtiniais“.
Pvz., Mums reikia veiksmo, kuris, prieš užpildydamas žiniatinklio elementą, gali konvertuoti tekstą į didžiąsias raides. Negalite rasti šio veiksmo numatytojoje veiksmų bibliotekoje. Tokiu atveju galite sukurti savo „Vartotojo plėtinį“. Šioje pamokoje sužinosime, kaip sukurti vartotojo plėtinį, norint konvertuoti tekstą į didžiąją raidę
Reikalavimas sukurti „Selenium“ vartotojo plėtinį:
Norėdami sukurti „Selenium IDE“ vartotojo plėtinį, turime žinoti pagrindinę „JavaScript“ ir „Java Script“ objekto prototipo koncepciją.
Norėdami sukurti savo vartotojo plėtinį, turite sukurti „Java“ scenarijų metodus ir pridėti juos prie seleno objekto prototipo ir „PageBot“ objekto prototipo.
Kaip „Selenium IDE“ atpažįsta vartotojo plėtinį?
Pridėjus vartotojo plėtinį prie „Selenium IDE“, kai paleidžiame „Selenium IDE“, visi šie „javascript“ prototipo plėtiniai įkeliami, o „Selenium IDE“ juos atpažįsta pagal savo vardą.
Kaip sukurti vartotojo plėtinį
1 veiksmas) Veiksmas - visus veiksmus pradeda „do“, ty jei veiksmas skirtas didžiosioms raidėms, jo pavadinimas bus „ doTextUpperCase“. Kai „Selenium IDE“ pridėsime šį veiksmo metodą, „Selenium IDE“ pati sukurs šio veiksmo laukimo metodą. Taigi šiuo atveju, kai sukursime „ doTextUpperCase“ veiksmą, „Selenium IDE“ sukurs atitinkamą laukimo funkciją kaip „ TextUpperCaseAndWait“ . Jis gali priimti du parametrus
Pavyzdys: didžiųjų raidžių teksto veiksmas
Selenium.prototype.doTextUpperCase = funkcija (lokatorius, tekstas) {// Čia „findElement“ gali tvarkyti visus lokatoriaus tipus („xpath“, „css“, „name“, „id“, „className“). Mes tiesiog turime perduoti lokatoriaus tekstąvar element = this.page (). findElement (lokatorius);// Sukurkite tekstą, kurį norite įvestitekstas = text.toUpperCase ();// Pakeiskite elemento tekstą nauju tekstuthis.page (). pakeistiText (elementas, tekstas);};
2 žingsnis) Vertintojai / tvirtinimas - visi vertintojai, užregistruoti seleno objekto prototipe, bus su priešdėliais
pagal „get“ arba „is“ yra „Ex. getValueFromCompoundTable, isValueFromCompoundTable. Jis gali priimti du parametrus, vieną tikslui ir kitą vertės laukui bandymo atveju.
Kiekvienam vertintojui bus pateiktos atitinkamos patikrinimo funkcijos, prieš kurias įrašyta „patikrinti“, „tvirtinti“, o laukimo funkcijos priešdėlis - „waitFor“.
Pavyzdys: didžiųjų raidžių teksto vertintojams
Selenium.prototype.assertTextUpperCase = funkcija (lokatorius, tekstas) {// „FindElement“ automatiškai tvarko visas lokatoriaus strategijasvar element = this.page (). findElement (lokatorius);// Sukurkite tekstą, kurį norite patikrintitekstas = text.toUpperCase ();// Gaukite faktinę elemento vertęvar actualValue = element.value;// Įsitikinkite, kad faktinė vertė atitinka laukiamą„Assert.matches“ (numatomaVertė, faktinėVertė);};Selenium.prototype.isTextEqual = funkcija (lokatorius, tekstas) {grąžinkite šį.getText (lokatorius) .value === tekstą;};Selenium.prototype.getTextValue = funkcija (lokatorius, tekstas) {grąžinkite šį.getText (lokatorius) .value;};
3 žingsnis) Vietos nustatymo strategija - jei norime sukurti savo funkciją, norėdami rasti elementą
turime išplėsti „PageBot“ prototipą su funkcija su priešdėliu „locateElementBy“.
Tam reikės dviejų parametrų: pirma bus lokatoriaus eilutė, o antra - dokumentas
kur jo reikia ieškoti.
Pavyzdys: didžiųjų raidžių teksto lokatoriui
// „inDocument“ yra dokumentas, kurio ieškote.PageBot.prototype.locateElementByUpperCase = funkcija (tekstas, inDocument) {// Sukurkite ieškomą tekstąvar numatytasValue = text.toUpperCase ();// Peržiūrėkite visus elementus, ieškodami tų, kurie turi// a vertė === mūsų laukiama vertėvar allElements = inDocument.getElementsByTagName ("*");// Ši žvaigždutė „*“ yra tam tikra reguliarioji išraiška, kuri eis per kiekvieną elementą (HTML DOM kiekvienas elementas tikrai turi žymos pavadinimą, pvz., , ,,