Laajennusten ymmärtämiseksi annetaan ensin ymmärtää seleenin IDE: n kolme pilaria
- Toimi: Mitä toimintoa suoritat käyttöliittymän näytöllä
- Arvioijat / väite: Mitä varmennuksia teet käyttöliittymästä saamillesi tiedoille
- Locator-strategia: Kuinka voimme löytää elementin käyttöliittymästä.
Nyt Selenium IDE: llä on erittäin kypsä kirjasto, jossa on paljon toimintoja, väitteitä / arvioijia ja paikannusstrategioita.
Mutta joskus meidän on lisättävä siihen lisää toimintoja projektivaatimuksiamme varten. Tässä tilanteessa voimme laajentaa kirjastoa lisäämällä mukautetut laajennuksemme. Näitä mukautettuja laajennuksia kutsutaan käyttäjän laajennuksiksi.
Tarvitsemme esimerkiksi toiminnon, joka voi muuntaa tekstin isoksi ennen web-elementin täyttämistä. Tätä toimintoa ei löydy oletusarvoisesta Toimintokirjastosta. Tällöin voit luoda oman 'käyttäjälaajennuksen'. Tässä opetusohjelmassa opitaan, kuinka luodaan käyttäjälaajennus tekstin muuntamiseksi isoksi kirjaimeksi
Vaatimus Selenium-käyttäjälaajennuksen luomiseksi:
Selenium IDE: n käyttäjälaajennuksen luomiseksi meidän on tiedettävä JavaScriptin ja Java Scriptin prototyyppikohde-käsitteen peruskäsite.
Käyttäjälaajennuksen luomiseksi sinun on luotava Java-komentosarjatavat ja lisättävä ne seleeniobjektin prototyyppiin ja PageBot-objektin prototyyppiin.
Kuinka Selenium IDE tunnistaa käyttäjän laajennuksen?
Kun käyttäjälaajennus on lisätty Selenium IDE -ohjelmaan, kun käynnistämme Selenium IDE: n, kaikki nämä javascript-prototyypin laajennukset latautuvat, ja Selenium IDE tunnistaa ne nimellä.
Kuinka luoda käyttäjälaajennus
Vaihe 1) Toiminto - kaikki toiminnot käynnistetään "do" -toiminnolla, ts. Jos toiminto on tarkoitettu isoille kirjaimille, sen nimi on doTextUpperCase. Kun lisätään tämä toimintamenetelmä Selenium IDE -ohjelmaan, Selenium IDE luo itse odotustavan tälle toiminnolle. Joten tässä tapauksessa, kun luomme doTextUpperCase- toiminnon, Selenium IDE luo vastaavan odotustoiminnon nimellä TextUpperCaseAndWait . Se voi hyväksyä kaksi parametria
Esimerkki: isojen kirjainten tekstitoiminto
Selenium.prototype.doTextUpperCase = funktio (paikannin, teksti) {// Täällä findElement pystyy itse käsittelemään kaiken tyyppisiä paikantimia (xpath, css, nimi, id, className), meidän on vain välitettävä paikannustekstivar element = this.sivu (). findElement (paikannin);// Luo kirjoitettava tekstiteksti = teksti.toUpperCase ();// Korvaa elementtiteksti uudella tekstilläthis.page (). aizstaaText (elementti, teksti);};
Vaihe 2) Arvioijat / väite - Kaikki seleeniobjektin prototyyppiin rekisteröidyt arvioijat etuliitetään
"get" tai "on" Ex. getValueFromCompoundTable, isValueFromCompoundTable .Se voi hyväksyä kaksi parametria, yhden kohteelle ja toisen arvokentälle testitapauksessa.
Jokaiselle arvioijalle on olemassa vastaavat tarkastustoiminnot, joiden etuliite on "vahvista", "vakuuttaa" ja odotustoiminnon etuliite "waitFor".
Esimerkki: Isojen kirjainten arvioijille
Selenium.prototype.assertTextUpperCase = funktio (paikannin, teksti) {// "findElement" käsittelee kaikki paikannusstrategiat automaattisestivar element = this.sivu (). findElement (paikannin);// Luo vahvistettava tekstiteksti = teksti.toUpperCase ();// Hae todellinen elementin arvovar actualValue = element.value;// Varmista, että todellinen arvo vastaa odotettuaAssert.matches (odotettavissa oleva arvo, todellinen arvo);};Selenium.prototype.isTextEqual = funktio (paikannin, teksti) {palauta this.getText (paikannin) .arvo === teksti;};Selenium.prototype.getTextValue = funktio (paikannin, teksti) {palauta this.getText (locator) .value;};
Vaihe 3) Paikannusstrategia - Jos haluamme luoda oman toiminnon paikantamaan elementin
meidän on laajennettava PageBot-prototyyppiä toiminnolla, jonka etuliite on "locateElementBy".
Se vie kaksi parametria, ensin on paikanninmerkkijono ja toinen on asiakirja
missä sitä on etsittävä.
Esimerkki: Isojen kirjainten paikannuslaite
// "inDocument" on etsimäsi asiakirja.PageBot.prototype.locateElementByUpperCase = funktio (teksti, inDocument) {// Luo haettava tekstivar odotettavissa oleva arvo = teksti.toUpperCase ();// Selaa kaikkia elementtejä etsimällä niitä, joilla on// arvo === odotettu arvovar allElements = inDocument.getElementsByTagName ("*");// Tämä tähti '*' on eräänlainen säännöllinen lauseke, joka käy läpi kaikki elementit (HTML DOM: ssa jokaisella elementillä on varmasti tagin nimi, kuten , ,,