Pentru a înțelege extensiile, să înțelegem mai întâi cei trei piloni ai selenului IDE
- Acțiune: ce operațiune efectuați pe ecranul UI
- Evaluatori / afirmație: ce verificare faceți cu privire la datele pe care le obțineți din interfața de utilizare
- Strategia de localizare: Cum putem găsi elementul în interfața de utilizare.
Acum, Selenium IDE are o bibliotecă foarte matură, cu o mulțime de acțiuni, afirmații / evaluatori și strategii de localizare.
Dar, uneori, trebuie să adăugăm câteva funcționalități pentru cerințele proiectului nostru. În această situație, putem extinde această bibliotecă adăugând extensiile noastre personalizate. Aceste extensii personalizate se numesc „Extensie utilizator”.
De exemplu, avem nevoie de o acțiune care poate converti textul cu majuscule înainte de a-l completa într-un element web. Nu puteți găsi această acțiune în biblioteca implicită de acțiuni. În acest caz, vă puteți crea propria „Extensie utilizator”. În acest tutorial, vom învăța cum să creăm extensia utilizatorului pentru a converti textul cu majuscule
Cerința de a crea extensia de utilizator Selenium:
Pentru a crea extensia de utilizator pentru Selenium IDE, trebuie să cunoaștem conceptul de bază al conceptului de obiect prototip JavaScript și Java Script.
Pentru a vă crea extensia de utilizator, trebuie să creați metode de script Java și să le adăugați la prototipul obiectului seleniu și la prototipul obiectului PageBot.
Cum Selenium IDE recunoaște extensia utilizatorului?
După adăugarea extensiei de utilizator la Selenium IDE când pornim Selenium IDE, toate aceste extensii din prototipul javascript se încarcă, iar Selenium IDE le recunoaște după numele lor.
Cum se creează o extensie de utilizator
Pasul 1) Acțiune - toate acțiunile sunt începute cu „face”, adică dacă acțiunea este pentru text cu majuscule, numele său va fi doTextUpperCase. Când adăugăm această metodă de acțiune în Selenium IDE, Selenium IDE va crea în sine o metodă de așteptare pentru această acțiune. Deci, în acest caz, atunci când creăm acțiunea doTextUpperCase , Selenium IDE va crea o funcție de așteptare corespunzătoare ca TextUpperCaseAndWait . Poate accepta doi parametri
Exemplu: Acțiune cu majuscule
Selenium.prototype.doTextUpperCase = funcție (localizator, text) {// Aici findElement este în sine capabil să gestioneze toate tipurile de localizator (xpath, css, nume, id, className), Trebuie doar să trecem textul localizatoruluielement var = this.page (). findElement (localizator);// Creați textul pentru a tastatext = text.toUpperCase ();// Înlocuiți textul elementului cu textul nouthis.page (). replaceText (element, text);};
Pasul 2) Evaluatori / Afirmație - Toți evaluatorii înregistrați în prototipul de obiect seleniu vor fi prefixați
prin „obține” sau „este„ Ex. getValueFromCompoundTable, isValueFromCompoundTable. Poate accepta doi parametri, unul pentru țintă și altul pentru câmpul valoric în cazul testului.
Pentru fiecare evaluator, vor exista funcții de verificare corespunzătoare prefixate cu „verificați”, „afirmă” și prefixul funcției de așteptare cu „așteptațiPentru”
Exemplu: Pentru evaluatorii de majuscule
Selenium.prototype.assertTextUpperCase = funcție (localizator, text) {// Toate strategiile de localizare sunt gestionate automat de „findElement”element var = this.page (). findElement (localizator);// Creați textul pentru verificaretext = text.toUpperCase ();// Obțineți valoarea reală a elementuluivar ActualValue = element.value;// Asigurați-vă că valoarea reală se potrivește cu cea așteptatăAssert.matches (expectedValue, actualValue);};Selenium.prototype.isTextEqual = funcție (localizator, text) {returnează this.getText (localizator) .value === text;};Selenium.prototype.getTextValue = funcție (localizator, text) {returnează this.getText (locator) .value;};
Pasul 3) Strategia de localizare - Dacă dorim să ne creăm propria funcție pentru a localiza un element atunci
trebuie să extindem prototipul PageBot cu o funcție cu prefixul "findElementBy".
Va dura doi parametri, primul va fi șirul de localizare și al doilea va fi documentul
unde trebuie căutat.
Exemplu: Pentru Localizatorul textului cu majuscule
// „inDocument” este un document pe care îl căutați.PageBot.prototype.locateElementByUpperCase = funcție (text, inDocument) {// Creați textul de căutatvar expectedValue = text.toUpperCase ();// Parcurgeți toate elementele, căutând cele care au// o valoare === valoarea noastră așteptatăvar allElements = inDocument.getElementsByTagName ("*");// Această stea „*” este un fel de expresie regulată care va trece prin fiecare element (în HTML DOM fiecare element are cu siguranță un nume de etichetă precum , ,,