Selenium Põhilaiendid (User-Extensions.js)
⚡ Nutikas kokkuvõte
Selenium Põhilaiendid, mida nimetatakse ka kasutajalaienditeks, lisavad kohandatud toiminguid, ligipääsumehhanisme ja lokaliseerimisstrateegiaid Selenium IDE lisamise teel JavaSkripti funktsioonid Selenium ja PageBoti prototüüpobjektid IDE käivitamisel.
Selenium Südamiku pikendused
Laienduste mõistmiseks mõistkem kõigepealt kolme sammast Selenium IDEIga IDE-sse salvestatud või sisestatud käsk kuulub ühte kolmest allpool loetletud kategooriast ja iga ekraanipilt näitab, kuidas see kategooria IDE käskude loendis kuvatakse.
- Tegevus: Millist toimingut te kasutajaliidese ekraanil teete?
- Juurdepääsud / väide: Millist kontrolli te kasutajaliidesest saadud andmete põhjal teete?
- Asukoha strateegia: Kuidas elemendi kasutajaliidesest leida.
Selenium IDE-ga on kaasas küps teeki, mis sisaldab juba palju toiminguid, ligipääsufunktsioone ja väiteid ning lokaliseerimisstrateegiaid.
Mõnikord vajab projekt aga funktsionaalsust, mida selles teegis pole. Sellisel juhul saate teeki laiendada, lisades oma kohandatud laienduse. Neid kohandatud laiendusi nimetatakse kasutajalaiend.
Näiteks oletame, et vajate toimingut, mis teisendab teksti enne veebielemendi sisestamist suurtähtedeks. Vaikimisi teegis sellist toimingut pole, seega loote oma kasutajalaiendi. Selles õpetuses saate teada, kuidas luua kasutajalaiend, mis teisendab teksti suurtähtedeks.
⚠️ Enne alustamist: siin kirjeldatud töövoog kuulub Selenium Tuum ja originaal Firefox-plugin Selenium IDE. Selenium Core on pensionile jäänud ja kasutajalaienduste tugi eemaldati. Selenium purgid sisse Selenium 3. Allolevad sammud ja kood on säilitatud, kuna suur hulk pärandseleeni tarkvarapakette sõltub neist endiselt; tänapäevast asendust kirjeldatakse hiljem selles artiklis.
Nõue luua Selenium Kasutaja laiendus
Kasutajalaiendi loomiseks Selenium IDE-s on vaja põhimõisteid JavaScript ja eelkõige JavaSkripti prototüübi objekt. Allolev diagramm näitab kahte prototüübi objekti, millega kasutajalaiend end sidub.
Kasutajalaiendi loomiseks kirjutate JavaSkriptimeetodid ja nende lisamine Selenium objekti prototüübile ja PageBoti objekti prototüübile.
Kuidas Selenium IDE tuvastab kasutaja laienduse
Pärast kasutajalaiendi lisamist Selenium IDE ja IDE käivitamisel registreeritakse kõik nendes olevad funktsioonid JavaSkripti prototüübid on laaditud ja Selenium IDE tunneb igaühe ära nime järgi. Seetõttu ei ole järgmises jaotises olevad nimetamise eesliited stiilivalik – need on viis, kuidas IDE teie käsku liigitab.
Kasutajalaiendi loomine
Samm 1) Toiming – kõik toimingud algavad doKui toiming teisendab teksti suurtähtedeks, on selle nimi doTextUpperCaseKui lisate selle toimingumeetodi Selenium IDE loob ise vastava ootamismeetodi, seega doTextUpperCase toodab ka ootamisfunktsiooni tekstUpperCaseAndWaitMeetod saab vastu võtta kaks parameetrit.
Näide: tekstitoiming suurtähtedega
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. samm) Juurdepääsud / väide – kõik registreeritud ligipääsu saajad Selenium objekti prototüübi eesliide on saama or is, näiteks getValueFromCompoundTable või isValueFromCompoundTable. Juurdepääsufunktsioon saab aktsepteerida kahte parameetrit: ühe sihtmärgi ja teise väärtusvälja jaoks testjuhtumis. Allolev ekraanipilt näitab, kuidas need eesliited pärast laienduse laadimist välja näevad.
Iga ligipääsuandja puhul Selenium IDE genereerib vastavad verifitseerimisfunktsioonid, mille eesliide on kontrollima ja väita, pluss ootefunktsioon, mille eesliide on ootama.
Näide: Suurtähtedega teksti juurdepääsufunktsioonide jaoks
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. samm) Lokaatori strateegia – kui soovite luua oma funktsiooni elemendi leidmiseks, laiendage PageBoti prototüüpi funktsiooniga, mille eesliide on asukohaelementi aluselSee võtab kaks parameetrit: lokaatori string ja dokument, milles elementi tuleks otsida.
Näide: suurtähtedega tekstiotsija jaoks
// 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; };
Salvesta kõik kolm funktsiooni ühte faili nimega kasutajalaiendid.jsFail on lihtne JavaSkript, seega piisab ükskõik millisest tekstiredaktorist.
Kuidas kasutada äsja loodud põhilaiendust
Faili laadimine on originaalis neljaastmeline ülesanne Firefox-plugin IDE. Iga allolev ekraanipilt vastab selle kõrval olevale nummerdatud sammule.
- Minna Selenium IDE ja klõpsake Valikud -> Valikud…
- aasta Üldine jaotises valige äsjaloodud faili asukoht Selenium Tuuma pikendus.
- Click OK ja taaskäivitage Selenium SDI.
- Laienduse leiate käskude loendist.
Selenium Põhilaiendused vs. Selenium IDE laiendused
Vanemates materjalides kasutatakse neid kahte terminit vaheldumisi, kuid need kirjeldavad erinevaid kihte ja see erinevus on oluline, kui otsustate, kuhu kohandatud loogika paigutada.
| Aspekt | Selenium Südamiku pikendus | Selenium IDE laiendus |
|---|---|---|
| Mida see laiendab | Selenese käskude kogu, mida kasutatakse taasesituse ajal | IDE rakendus ise |
| Fail laaditud | kasutajalaiendid.js | user-extensions-ide.js pärand-IDE-s, pluginate manifest praeguses IDE-s |
| Tüüpiline kasutamine | Uued toimingud, juurdepääsud ja lokaliseerimisstrateegiad | Uued menüüelemendid, paneelid, vormingud ja salvesti käitumine |
| Puudutatud esemed | Selenium.prototype ja PageBot.prototype | IDE redaktori ja salvestaja API-d |
| Jookseb ajal | Testi täitmine | Autorlus ja salvestamine |
Lühidalt, Core'i laiendus muudab testi võimalusi, samas kui IDE laiendus muudab tööriista võimalusi.
Kuidas moodne Selenium IDE asendab kasutaja-extensions.js faili
. Firefox-plugin Selenium IDE lakkas töötamast, kui Firefox koliti WebExtensionsi arhitektuurile ja IDE kirjutati ümber Chrome'iks, Firefox ja Edge'i brauserilaiend. See ümberkirjutus eemaldas ülaltoodud valikute väli, seega pole kohta, kuhu user-extensions.js failile viidata. Kaks toetatud alternatiivi hõlmavad sama eesmärki.
- Skripti käivitamise käsk. Ühekordseks kasutamiseks JavaSkript, lisa käivita skript or käivita asünkroonne skript astu otse testi ja salvesta tulemus muutujasse. See on lähim vaste väikesele kohandatud toimingule.
- Plugin. Korduvkasutatavate käskude jaoks looge brauserilaiend, mis registreerib IDE-s manifesti. Manifest deklareerib iga uue käsu koos ID, nime, valikulise tüübi ja dokumentatsiooniga ning võib deklareerida ka uusi lokaatoreid.
Manifest registreeritakse, saates IDE laiendusele teate, nagu on näidatud ametlikus dokumendis. Selenium IDE plugina dokumentatsioon.
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);
Nimetamise distsipliin jääb migratsioonist alles: plugin-käsk deklareeritakse endiselt üks kord ja seejärel kasutatakse seda igas testis, täpselt nagu Core'i laiendust.
Populaarsed laiendused ja pluginad, mida kasutatakse Selenium IDE
Allpool olevad lisandmoodulid olid pärand-IDE-s kõige laialdasemalt kasutusel. Mitmed neist, näiteks voolukontroll ja ekraanipilt rikke korral, on nüüd praegusesse IDE-sse sisse ehitatud või saadaval hooldatud pluginatena.
| Eesnimi | Eesmärk |
|---|---|
| Lemmikud | Testikomplekti lemmikuks märkimiseks ja selle ühe klõpsuga käivitamiseks |
| Flex Pilot X | Flexipõhise automatiseerimise jaoks |
| FlexMonkium | Adobe Flexi põhise salvestamise ja taasesituse jaoks testimine in Selenium IDE |
| Failide logimine | Logide faili salvestamiseks |
| Vookontroll | Testi täitmise voo juhtimiseks |
| Tõstke esile elemendid | Veebi juhtelemendi esiletõstmiseks |
| Kaudne ootamine | Elemendi ootamine teatud aja jooksul |
| Ekraanipilt ebaõnnestumise korral | Tehke ebaõnnestumise kohta ekraanipilt |
| Testi tulemused | Säästa testjuhtum testkomplekti tulemus ühe klõpsuga |
Vana SeleniumNeid faile majutanud peakorteri allalaadimislehte enam ei eksisteeri. Praegused pluginad ja IDE ise levitatakse saidilt Selenium IDE projekti sait ja Chrome'ist Firefox ja Edge'i lisandmoodulite poed.
Lae alla Selenium Selles õpetuses kasutatud põhilaiendus









