A kiterjesztések megértéséhez először meg kell értenünk a szelén IDE három oszlopát
- Művelet: Milyen műveletet hajt végre az UI képernyőn
- Értékelők / Állítás: Milyen ellenőrzést végez az UI-tól kapott adatokon
- Helymeghatározó stratégia: Hogyan találhatjuk meg az elemet a felhasználói felületen.
A Selenium IDE nagyon kiforrott könyvtárral rendelkezik, rengeteg művelettel, állítással / értékelőkkel és lokátor stratégiákkal.
De néha hozzá kell adnunk még néhány funkciót a projekt követelményeihez. Ebben a helyzetben kibővíthetjük ezt a könyvtárat egyéni bővítményeink hozzáadásával. Ezeket az egyéni kiterjesztéseket „Felhasználói kiterjesztésnek” hívják.
Például szükségünk van egy műveletre, amely a szöveget nagybetűvé alakíthatja, mielőtt kitöltené egy webes elemet. Nem találja ezt a műveletet az alapértelmezett Műveleti könyvtárban. Ebben az esetben létrehozhat saját "felhasználói kiterjesztést". Ebben az oktatóanyagban megtudhatjuk, hogyan hozhatunk létre felhasználói kiterjesztést a szöveg nagybetűvé alakításához
A Selenium felhasználói kiterjesztés létrehozásának követelménye:
A Selenium IDE felhasználói kiterjesztésének létrehozásához ismerni kell a JavaScript és a Java Script prototípus objektum koncepciójának alapkoncepcióját.
A felhasználói kiterjesztés létrehozásához létre kell hoznia Java szkript metódusokat, és hozzá kell adnia őket a szelén objektum prototípusához és a PageBot objektum prototípusához.
Hogyan ismeri fel a Selenium IDE a felhasználói kiterjesztést?
Miután hozzáadta a felhasználói kiterjesztést a Selenium IDE-hez, amikor elindítjuk a Selenium IDE-t, a javascript prototípus összes kiterjesztése betöltődik, és a Selenium IDE felismeri őket a nevük alapján.
Felhasználói kiterjesztés létrehozása
1. lépés: Művelet - az összes műveletet a "do" kezdi , azaz ha a művelet nagybetűs szövegre vonatkozik, akkor annak neve doTextUpperCase lesz . Amikor hozzáadjuk ezt a műveletmódszert a Selenium IDE-be, a Selenium IDE maga létrehoz egy várakozási módszert ehhez a művelethez. Tehát ebben az esetben, amikor a doTextUpperCase műveletet hozunk létre , a Selenium IDE létrehoz egy megfelelő várakozási függvényt TextUpperCaseAndWait néven . Két paramétert képes elfogadni
Példa: Nagybetűs szövegművelet
Selenium.prototype.doTextUpperCase = function (lokátor, szöveg) {// Itt a findElement képes minden típusú lokátor kezelésére (xpath, css, név, id, className), csak át kell adnunk a lokátor szövegétvar elem = this.lap (). findElement (lokátor);// Hozza létre a szöveget a gépelésheztext = text.toUpperCase ();// Cserélje ki az elem szövegét az új szövegrethis.page (). substitText (elem, szöveg);};
2. lépés) Értékelők / Állítás - Az összes szelén objektum prototípusba bejegyzett értékelő előtag lesz
a "get" vagy a "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Két paramétert képes elfogadni, egyet a célhoz, a másikat pedig az érték mezőhöz tesztesetben.
Minden értékelőhöz lesznek megfelelő ellenőrző függvények, amelyek előtagja: "igazolás", "állítás", a várakozási függvény előtagja pedig "várakozás"
Példa: Nagybetűs szövegértékelők számára
Selenium.prototype.assertTextUpperCase = függvény (lokátor, szöveg) {// Az összes lokátor-stratégiát a "findElement" automatikusan kezelivar elem = this.lap (). findElement (lokátor);// Hozza létre az ellenőrzendő szövegettext = text.toUpperCase ();// A tényleges elemérték beolvasásavar actualValue = elem.érték// Győződjön meg arról, hogy a tényleges érték megegyezik a várt értékkelAssert.matches (várható érték, tényleges érték);};Selenium.prototype.isTextEqual = function (lokátor, szöveg) {adja vissza ezt.getText (lokátor) .value === szöveg;};Selenium.prototype.getTextValue = function (lokátor, szöveg) {adja vissza ezt :getText (locator) .value;};
3. lépés) Helymeghatározó stratégia - Ha saját függvényt akarunk létrehozni egy elem megkeresésére, akkor
ki kell terjesztenünk a PageBot prototípust egy "locateElementBy" előtagú függvénnyel.
Két paraméterre lesz szükség, először a lokátor karakterlánc lesz, a második pedig a dokumentum
ahol át kell kutatni.
Példa: Nagybetűs szövegkeresőhöz
// Az "inDocument" egy olyan dokumentum, amelyet keres.PageBot.prototype.locateElementByUpperCase = function (text, inDocument) {// Hozza létre a keresendő szövegetvar várható érték = text.toUpperCase ();// Húzza végig az összes elemet, keressen olyanokat, amelyek rendelkeznek// egy érték === várt értékünkvar allElements = inDocument.getElementsByTagName ("*");// Ez a '*' csillag egyfajta reguláris kifejezés, amely minden elemen át fog menni (a HTML DOM-ban minden elemnek biztosan van tag neve, például , ,,