Aby sme porozumeli rozšíreniam, najskôr pochopíme tri piliere IDE selénu
- Akcia: Akú operáciu vykonávate na obrazovke používateľského rozhrania
- Hodnotitelia / tvrdenie: Aké overenie vykonáte v prípade údajov, ktoré získate z používateľského rozhrania
- Stratégia vyhľadávača: Ako nájdeme prvok v používateľskom rozhraní.
Teraz má Selenium IDE veľmi vyspelú knižnicu s množstvom stratégií Action, Assertion / Assessors a Locator.
Niekedy však musíme pridať ďalšie funkcie pre naše projektové požiadavky. V takom prípade môžeme túto knižnicu rozšíriť pridaním vlastných rozšírení. Tieto vlastné rozšírenia sa nazývajú „User Extension“.
Potrebujeme napríklad akciu, ktorá dokáže previesť text na veľké písmená pred jeho vyplnením do webového prvku. Túto akciu nenájdete v predvolenej knižnici akcií. V takom prípade si môžete vytvoriť vlastné „Používateľské rozšírenie“. V tomto tutoriále sa naučíme, ako vytvoriť užívateľské rozšírenie na prevod textu na veľké písmená
Požiadavka na vytvorenie užívateľského rozšírenia Selenium:
Aby sme mohli vytvoriť rozšírenie pre Selenium IDE, musíme poznať základný koncept konceptu JavaScriptu a prototypu objektu Java Script.
Ak chcete vytvoriť svoju užívateľskú príponu, musíte vytvoriť skriptové metódy Java a pridať ich k prototypu objektov selénu a prototypu objektov PageBot.
Ako Selenium IDE rozpoznáva rozšírenie používateľa?
Po pridaní používateľského rozšírenia do selénového IDE pri spustení selénového IDE sa načítajú všetky tieto rozšírenia v prototype javascript a selénové IDE ich rozpozná podľa názvu.
Ako vytvoriť rozšírenie používateľa
Krok 1) Akcia - všetky akcie sa spúšťajú príkazom „do“, tj ak sa jedná o akciu pre veľké písmená, jej názov bude doTextUpperCase. Keď pridáme túto metódu akcie do selénu IDE, selén IDE sama vytvorí metódu čakania na túto akciu. Takže v tomto prípade, keď vytvoríme akciu doTextUpperCase , selén IDE vytvorí zodpovedajúcu funkciu čakania ako TextUpperCaseAndWait . Môže prijať dva parametre
Príklad: Akcia s veľkým písmom
Selenium.prototype.doTextUpperCase = funkcia (lokátor, text) {// Tu je findElement sám schopný spracovať všetky typy lokátorov (xpath, css, name, id, className), musíme len odovzdať text lokátoravar element = this.page (). findElement (lokátor);// Vytvorte text na písanietext = text.toUpperCase ();// Nahraďte text prvku novým textomthis.page (). replaceText (prvok, text);};
Krok 2) Hodnotitelia / tvrdenie - Všetci hodnotitelia zaregistrovaní v prototype selenového objektu budú mať predponu
výrazom „získať“ alebo „je“ napr. getValueFromCompoundTable, isValueFromCompoundTable. Môže prijať dva parametre, jeden pre cieľové a druhý pre hodnotové pole v testovacom prípade.
Pre každého hodnotiteľa budú existovať zodpovedajúce overovacie funkcie s predponou „verify“, „assert“ a predponou čakacej funkcie s „waitFor“
Príklad: Pre posudzovateľov písaných veľkým písmom
Selenium.prototype.assertTextUpperCase = funkcia (lokátor, text) {// Všetky lokalizačné stratégie sú automaticky spracovávané pomocou „findElement“var element = this.page (). findElement (lokátor);// Vytvorte text na overenietext = text.toUpperCase ();// Získajte skutočnú hodnotu prvkuvar actualValue = element.value;// Zaistite, aby sa skutočná hodnota zhodovala s očakávanouAssert.matches (expectValue, actualValue);};Selenium.prototype.isTextEqual = funkcia (lokátor, text) {vrátiť this.getText (lokátor) .hodnota === text;};Selenium.prototype.getTextValue = funkcia (lokátor, text) {vrátiť this.getText (lokátor) .hodnota;};
Krok 3) Stratégia lokátorov - Ak si chceme vytvoriť vlastnú funkciu na vyhľadanie prvku, potom
musíme rozšíriť prototyp PageBota o funkciu s predponou „locateElementBy“.
Bude to trvať dva parametre, prvý bude lokátorový reťazec a druhý bude dokument
kde to treba hladat.
Príklad: Pre vyhľadávač veľkých písmen
// „InDocument“ je dokument, ktorý hľadáte.PageBot.prototype.locateElementByUpperCase = funkcia (text, inDocument) {// Vytvorte text, ktorý chcete vyhľadaťvar expectValue = text.toUpperCase ();// Prelistujte všetky prvky a hľadajte tie, ktoré majú// a value === naša očakávaná hodnotavar allElements = inDocument.getElementsByTagName ("*");// Táto hviezda '*' je druh regulárneho výrazu, ktorý prejde každým prvkom (v prvku HTML DOM má každý prvok určite názov značky ako , ,,