Selenium Alapkiterjesztések (User-Extensions.js)
⚡ Okos összefoglaló
Selenium Az alapvető kiterjesztések, más néven felhasználói kiterjesztések, egyéni műveleteket, hozzáférési lehetőségeket és helymeghatározó stratégiákat adnak hozzá a Selenium IDE csatolással JavaSzkriptfüggvények a Selenium és a PageBot prototípus objektumait az IDE indulásakor.
Selenium Core Extensions
A kiterjesztések megértéséhez először is tisztázzuk a három pillért Selenium IDEMinden, az IDE-be rögzített vagy beírt parancs az alábbi három kategória egyikébe tartozik, és minden képernyőkép azt mutatja, hogyan jelenik meg az adott kategória az IDE parancslistájában.
- Akció: Milyen műveletet hajt végre a felhasználói felület képernyőjén.
- Hozzáférők / állítás: Milyen ellenőrzést hajt végre a felhasználói felületről kapott adatokon.
- Helymeghatározó stratégia: Hogyan találod meg az elemet a felhasználói felületen.
Selenium Az IDE egy kiforrott könyvtárral érkezik, amely már rengeteg műveletet, elérőt és állítást, valamint lokátorstratégiát tartalmaz.
Előfordul azonban, hogy egy projektnek olyan funkciókra van szüksége, amelyek nincsenek benne a könyvtárban. Ilyen esetben bővítheti a könyvtárat saját egyéni bővítmény hozzáadásával. Ezeket az egyéni bővítményeket nevezzük felhasználói kiterjesztés.
Tegyük fel például, hogy szükséged van egy olyan műveletre, amely a szöveget nagybetűssé alakítja, mielőtt kitöltené egy webes elemmel. Ilyen művelet nem létezik az alapértelmezett könyvtárban, ezért létrehozod a saját felhasználói bővítményedet. Ebben az oktatóanyagban megtudhatod, hogyan hozhatsz létre egy olyan felhasználói bővítményt, amely nagybetűssé alakítja a szöveget.
⚠️ Mielőtt elkezdenéd: az itt leírt munkafolyamat a következőhöz tartozik: Selenium Mag és az eredeti Firefox-bővítmény Selenium IDE. Selenium A Core-t visszavonták, és a felhasználói bővítmények támogatását is megszüntették a Selenium üvegekbe Selenium 3. Az alábbi lépéseket és kódot megőriztük, mivel számos korábbi Selenese csomag továbbra is ezektől függ; a modern cserét a cikk későbbi részében ismertetjük.
Létrehozási követelmény Selenium Felhasználói bővítmény
Felhasználói mellék létrehozása a következőhöz: Selenium IDE-ben szükséged van az alapvető fogalmakra JavaForgatókönyv és különösen a JavaSzkript prototípus objektum. Az alábbi ábra a két prototípus objektumot mutatja, amelyekhez egy felhasználói bővítmény csatlakozik.
A felhasználói bővítmény létrehozásához írja be JavaSzkriptmetódusok és azok hozzáadása a Selenium objektum prototípushoz és a PageBot objektum prototípushoz.
Hogyan Selenium Az IDE felismeri a felhasználói kiterjesztést
Miután hozzáadtak egy felhasználói melléket Selenium IDE és az IDE elindítása után minden, azokon regisztrált funkció JavaA szkript prototípusok betöltődnek, és Selenium Az IDE mindegyiket a nevük alapján ismeri fel. Ezért a következő szakaszban található névelőtagok nem stílusválasztás kérdései – ezek alapján osztályozza az IDE a parancsokat.
Felhasználói bővítmény létrehozása
1. lépés) Művelet – minden művelet ezzel kezdődik doHa a művelet nagybetűs szöveggé alakítja a szöveget, akkor a neve a következő: doTextUpperCaseAmikor hozzáadod ezt a műveleti metódust a következőhöz: Selenium IDE, maga az IDE létrehoz egy egyező várakozási metódust, tehát doTextUpperCase a várakozási függvényt is előállítja textUpperCaseAndWaitA metódus két paramétert fogadhat el.
Példa: nagybetűs szövegművelet
Selenium.prototype.doTextUpperCase = function(locator, text) { // Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text var element = this.page().findElement(locator); // Create the text to type text = text.toUpperCase(); // Replace the element text with the new text this.page().replaceText(element, text); };
2. lépés) Hozzáférések / állítás – az összes regisztrált hozzáférési jogosultság Selenium az objektum prototípusa előtaggal van ellátva kap or is, például getValueFromCompoundTable vagy isValueFromCompoundTable. Egy elérő két paramétert fogadhat el, egyet a célhoz és egyet a teszteset érték mezőjéhez. Az alábbi képernyőkép azt mutatja, hogyan jelennek meg ezek az előtagok a kiterjesztés betöltése után.
Minden egyes hozzáférési módhoz Selenium Az IDE a megfelelő ellenőrző függvényeket előzi meg a következővel: ellenőrzése és a érvényesíteni, plusz egy várakozási függvény, amelynek előtagja a várj.
Példa: Nagybetűs szöveghozzáférésekhez
Selenium.prototype.assertTextUpperCase = function(locator, text) { // All locator-strategies are automatically handled by "findElement" var element = this.page().findElement(locator); // Create the text to verify text = text.toUpperCase(); // Get the actual element value var actualValue = element.value; // Make sure the actual value matches the expected Assert.matches(expectedValue, actualValue); }; Selenium.prototype.isTextEqual = function(locator, text) { return this.getText(locator).value===text; }; Selenium.prototype.getTextValue = function(locator, text) { return this.getText(locator).value; };
3. lépés) Helymeghatározó stratégia – Ha saját függvényt szeretne létrehozni egy elem megkereséséhez, bővítse ki a PageBot prototípust egy olyan függvénnyel, amelynek előtagja a következő: Elem helymeghatározásaKét paramétert fogad el: a lokátor karakterláncot és a dokumentumot, amelyben az elemet keresni kell.
Példa: Nagybetűs szövegkeresőhöz
// The "inDocument" is a document you are searching. PageBot.prototype.locateElementByUpperCase = function(text, inDocument) { // Create the text to search for var expectedValue = text.toUpperCase(); // Loop through all elements, looking for ones that have // a value === our expected value var allElements = inDocument.getElementsByTagName("*"); // This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element. for (var i = 0; i < allElements.length; i++) { var testElement = allElements[i]; if (testElement.innerHTML && testElement.innerHTML === expectedValue) { return testElement; } } return null; };
Mentse el mindhárom függvényt egyetlen fájlba, melynek neve: user-extensions.jsA fájl sima. JavaSzkript, tehát bármilyen szövegszerkesztő elegendő.
Az újonnan létrehozott Core kiterjesztés használata
A fájl betöltése az eredetiben négy lépésből áll. Firefox-plugin IDE. Az alábbi képernyőképek mindegyike a mellette lévő számozott lépésnek felel meg.
- Tovább Selenium IDE és kattints Beállítások -> Beállítások…
- A Általános szakaszban válassza ki az újonnan létrehozott helyét Selenium Magbővítés.
- Kattints OK és indítsa újra Selenium SDI.
- A kiterjesztést a parancslistában találod.
Selenium Alapvető kiterjesztések vs. Selenium IDE-bővítmények
A két kifejezést felcserélhetően használják a régebbi anyagokban, de különböző rétegeket írnak le, és a különbségtétel fontos, amikor eldönti, hová helyezze az egyéni logikát.
| Aspect | Selenium Magkiterjesztés | Selenium IDE kiterjesztés |
|---|---|---|
| Mit nyújt ki | A visszajátszás során használt Selenese parancskönyvtár | Maga az IDE alkalmazás |
| Fájl betöltve | user-extensions.js | user-extensions-ide.js a régi IDE-ben, egy bővítménymanifeszt a jelenlegi IDE-ben |
| Tipikus felhasználás | Új műveletek, hozzáférési módok és helymeghatározó stratégiák | Új menüpontok, panelek, formátumok és a felvevő viselkedése |
| Megérintett tárgyak | Selenium.prototype és PageBot.prototype | IDE szerkesztő és rögzítő API-k |
| Futások ideje alatt | Teszt végrehajtása | Szerzői és rögzítési |
Röviden, egy Core kiterjesztés megváltoztatja, hogy mit tehet egy teszt, míg egy IDE kiterjesztés megváltoztatja, hogy mit tehet az eszköz.
Hogyan a modern Selenium IDE Lecseréli a user-extensions.js-t
Az Firefox-bővítmény Selenium Az IDE leállt, amikor Firefox átkerült a WebExtensions architektúrára, és az IDE-t Chrome-ként írták át, Firefox és az Edge böngészőbővítmény. Ez az átírás eltávolította a fent látható Beállítások mezőt, így nincs hely, ahol egy user-extensions.js fájlra mutathatnánk. Két támogatott alternatíva ugyanazt a területet fedi le.
- A parancsfájl végrehajtása parancs. Egyszeri alkalomra JavaSzkript, adj hozzá egyet szkript végrehajtása or aszinkron szkript végrehajtása közvetlenül a tesztben lépjen be, és az eredményt egy változóban tárolja. Ez a legközelebbi megfelelője egy kis egyéni műveletnek.
- Egy bővítmény. Újrafelhasználható parancsok esetén készíts egy böngészőbővítményt, amely regisztrál egy manifest fájlt az IDE-ben. A manifest fájl minden új parancsot deklarál egy azonosítóval, egy névvel, egy opcionális típussal és dokumentációval, valamint új lokátorokat is deklarálhat.
A jegyzékfájl regisztrálása egy üzenet IDE-bővítményre küldésével történik, a hivatalos dokumentumban látható módon. Selenium IDE bővítmény dokumentációja.
browser.runtime.sendMessage(SIDE_ID, {
uri: "/register",
verb: "post",
payload: {
name: "Selenium IDE plugin",
version: "1.0.0",
commands: [
{ id: "textUpperCase", name: "text upper case" }
]
}
}).catch(console.error);
A névezési szabályok megmaradtak a migráció után is: egy bővítményparancsot továbbra is egyszer deklarálnak, majd minden tesztben újra felhasználnak, pontosan úgy, ahogy egy Core kiterjesztést.
Népszerű kiterjesztések és beépülő modulok, amelyeket a következőben használnak: Selenium IDE
Az alábbi bővítmények voltak a legszélesebb körben használtak a régi IDE-ben. Számos közülük, mint például a folyamatvezérlés és a képernyőkép hiba esetén, most be van építve a jelenlegi IDE-be, vagy karbantartott bővítményként érhető el.
| Név | Cél |
|---|---|
| Érdekes | Tesztkészlet megjelölése kedvencként és futtatása egyetlen kattintással |
| Flex Pilot X | Flex alapú automatizáláshoz |
| FlexMonkium | Adobe Flex alapú felvételhez és lejátszáshoz tesztelés in Selenium IDE |
| Fájlnaplózás | A naplók fájlba mentéséhez |
| flow Control | A teszt végrehajtási folyamatának vezérléséhez |
| Jelölje ki az Elemeket | Webes vezérlőelem kiemelése |
| Implicit várakozás | Egy elemre egy bizonyos ideig várni |
| Képernyőkép sikertelenség esetén | Készítsen képernyőképet a kudarcról |
| Vizsgálati eredmények | Mentse el a próbaper egy kattintással egy tesztcsomag eredménye |
A régi SeleniumA fájlokat tároló HQ letöltési oldal már nem létezik. A jelenlegi bővítmények és maga az IDE a következő helyről oszlanak meg: Selenium IDE projekt webhely és a Chrome-ból, Firefox és Edge kiegészítő áruházak.
Töltse le a Selenium Ebben az oktatóanyagban használt alapkiterjesztés









