Selenium Ydinlaajennukset (User-Extensions.js)
โก รlykรคs yhteenveto
Selenium Ydinlaajennukset, joita kutsutaan myรถs kรคyttรคjรคlaajennuksiksi, lisรครคvรคt mukautettuja toimintoja, aksessoreita ja paikannusstrategioita Selenium IDE liittรคmรคllรค JavaSkriptifunktiot Selenium ja PageBot-prototyyppiobjektit IDE:n kรคynnistyessรค.
Selenium Ydinlaajennukset
Ymmรคrtรครคksemme laajennuksia, meidรคn on ensin ymmรคrrettรคvรค kolme pilaria Selenium IDEJokainen IDE:hen tallentamasi tai kirjoittamasi komento kuuluu johonkin alla olevista kolmesta luokasta, ja jokainen kuvakaappaus nรคyttรครค, miltรค kyseinen luokka nรคyttรครค IDE-komentoluettelossa.
- Toiminta: Mitรค toimintoa suoritat kรคyttรถliittymรคnรคytรถssรค.
- Accessorit / Vรคite: Mitรค tarkistuksia teet kรคyttรถliittymรคstรค saamillesi tiedoille.
- Paikanninstrategia: Nรคin lรถydรคt elementin kรคyttรถliittymรคstรค.
Selenium IDE toimitetaan kypsรคn kirjaston kanssa, joka sisรคltรครค jo runsaasti toimintoja, aksessoreita ja vรคitteitรค sekรค paikannusstrategioita.
Joskus projekti kuitenkin tarvitsee toimintoja, joita ei ole kyseisessรค kirjastossa. Tรคllaisessa tilanteessa voit laajentaa kirjastoa lisรครคmรคllรค oman mukautetun laajennuksen. Nรคitรค mukautettuja laajennuksia kutsutaan kรคyttรคjรคlaajennus.
Oletetaan esimerkiksi, ettรค tarvitset toiminnon, joka muuntaa tekstin isoiksi kirjaimiksi ennen sen tรคyttรคmistรค verkkoelementtiin. Tรคllaista toimintoa ei ole oletuskirjastossa, joten luot oman kรคyttรคjรคlaajennuksen. Tรคssรค opetusohjelmassa opit rakentamaan kรคyttรคjรคlaajennuksen, joka muuntaa tekstin isoiksi kirjaimiksi.
โ ๏ธ Ennen kuin aloitat: tรคssรค kuvattu tyรถnkulku kuuluu Selenium Ydin ja alkuperรคinen Firefox-laajennus Selenium IDE. Selenium Core on poistettu kรคytรถstรค, ja kรคyttรคjรคlaajennusten tuki on poistettu. Selenium purkit sisรครคn Selenium 3. Alla olevat vaiheet ja koodi on sรคilytetty, koska suuri mรครคrรค vanhoja Selenese-ohjelmistopaketteja on edelleen riippuvaisia โโniistรค; moderni korvaaja kuvataan myรถhemmin tรคssรค artikkelissa.
Vaatimus luoda Selenium Kรคyttรคjรคn laajennus
Kรคyttรคjรคlaajennuksen luominen kohteelle Selenium IDE:ssรค tarvitset peruskรคsitteet JavaKรคsikirjoitus ja erityisesti JavaSkriptin prototyyppiobjekti. Alla oleva kaavio nรคyttรครค kaksi prototyyppiobjektia, joihin kรคyttรคjรคlaajennus liittyy.
Luodaksesi kรคyttรคjรคlaajennuksesi, kirjoita JavaSkriptimenetelmรคt ja lisรครค ne Selenium objektin prototyyppiin ja PageBot-objektin prototyyppiin.
Miten Selenium IDE tunnistaa kรคyttรคjรคlaajennuksen
Kun kรคyttรคjรคtunnus on lisรคtty Selenium IDE ja IDE kรคynnistetรครคn, jokainen niille rekisterรถity funktio JavaSkriptiprototyypit ladataan ja Selenium IDE tunnistaa jokaisen nimeltรค. Siksi seuraavan osion nimeรคmisen etuliitteet eivรคt ole tyylivalinta โ ne ovat tapa, jolla IDE luokittelee komentosi.
Kรคyttรคjรคlaajennuksen luominen
Vaihe 1) Toimi โ kaikki toimenpiteet alkavat doJos toiminto muuntaa tekstin isoksi kirjaimiksi, sen nimi on doTextUpperCaseKun lisรครคt tรคmรคn toimintometodin Selenium IDE, IDE itse luo vastaavan odotusmetodin, joten doTextUpperCase tuottaa myรถs odotusfunktion textUpperCaseAndWaitMetodi voi hyvรคksyรค kaksi parametria.
Esimerkki: Tekstin isot kirjaimet
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); };
Vaihe 2) Accessorit / Vรคite โ kaikki jรคrjestelmรครคn rekisterรถidyt kรคyttรคjรคt Selenium objektin prototyypin etuliitteenรค on saada or is, esimerkiksi getValueFromCompoundTable tai isValueFromCompoundTable. Accessori voi hyvรคksyรค kaksi parametria, yhden kohteelle ja toisen testitapauksen arvokentรคlle. Alla oleva kuvakaappaus nรคyttรครค, miltรค nรคmรค etuliitteet nรคyttรคvรคt, kun laajennus on ladattu.
Jokaiselle aksessorille Selenium IDE luo vastaavat varmennusfunktiot, joiden etuliitteenรค on todentaa ja puolustaa, sekรค odotusfunktio, jonka etuliitteenรค on odota.
Esimerkki: Isojen kirjainten tekstin aksessorit
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; };
Vaihe 3) Paikanninstrategia โ jos haluat luoda oman funktion elementin paikantamiseksi, laajenna PageBot-prototyyppiรค funktiolla, jonka etuliitteenรค on locateElementBySe ottaa kaksi parametria: paikannusmerkkijonon ja dokumentin, josta elementtiรค haetaan.
Esimerkki: Tekstin suuraakkosia varten
// 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; };
Tallenna kaikki kolme funktiota yhteen tiedostoon nimeltรค kรคyttรคjรคlaajennukset.jsTiedosto on selkeรค JavaSkripti, joten mikรค tahansa tekstieditori riittรครค.
Kuinka kรคyttรครค uutta ydinlaajennusta
Tiedoston lataaminen on alkuperรคisessรค nelivaiheinen tehtรคvรค Firefox-plugin IDE. Jokainen alla oleva kuvakaappaus vastaa sen vieressรค olevaa numeroitua vaihetta.
- Mene Selenium IDE ja napsauta Asetukset -> Asetuksetโฆ
- In general osiossa valitse juuri luodun Selenium Ytimen laajennus.
- Napauta OK ja kรคynnistรค uudelleen Selenium SDI.
- Lรถydรคt laajennuksen komentoluettelosta.
Selenium Ydinlaajennukset vs. Selenium IDE-laajennukset
Nรคitรค kahta termiรค kรคytetรครคn vanhemmissa materiaaleissa keskenรครคn vaihdellen, mutta ne kuvaavat eri tasoja, ja erolla on merkitystรค, kun pรครคtรคt, mihin sijoitat mukautetun logiikan.
| Aspect | Selenium Ytimen laajennus | Selenium IDE-laajennus |
|---|---|---|
| Mitรค se laajentaa | Toiston aikana kรคytetty Selenesen komentokirjasto | Itse IDE-sovellus |
| Tiedosto ladattu | kรคyttรคjรคlaajennukset.js | user-extensions-ide.js vanhassa IDE:ssรค, laajennusten luettelo nykyisessรค IDE:ssรค |
| Tyypillinen kรคyttรถ | Uudet toiminnot, aksessorit ja paikannusstrategiat | Uudet valikkokohdat, paneelit, formaatit ja tallentimen toiminta |
| Kosketetut esineet | Selenium.prototype ja PageBot.prototype | IDE-editorin ja -tallennimen API-rajapinnat |
| Toimii aikana | Testin suorittaminen | Kirjoittaminen ja tallentaminen |
Lyhyesti sanottuna Core-laajennus muuttaa testin ominaisuuksia, kun taas IDE-laajennus muuttaa tyรถkalun ominaisuuksia.
Miten moderni Selenium IDE korvaa user-extensions.js:n
Firefox-laajennus Selenium IDE lakkasi toimimasta, kun Firefox siirrettiin WebExtensions-arkkitehtuuriin ja IDE kirjoitettiin uudelleen Chromeksi, Firefox ja Edge-selainlaajennus. Uudelleenkirjoitus poisti yllรค olevan Asetukset-kentรคn, joten user-extensions.js-tiedostoon ei ole enรครค osoitetta. Kaksi tuettua vaihtoehtoa kattavat saman aiheen.
- Suorita skripti -komento. Kertaluonteista JavaSkripti, lisรครค suorita skripti or suorita asynkroninen komentosarja astu suoraan testiin ja tallenna tulos muuttujaan. Tรคmรค on lรคhimpรคnรค pientรค mukautettua toimintoa.
- Lisรคosa. Uudelleenkรคytettรคviรค komentoja varten luo selainlaajennus, joka rekisterรถi manifestin IDE:hen. Manifestissa mรครคritetรครคn jokainen uusi komento tunnuksella, nimellรค, valinnaisella tyypillรค ja dokumentaatiolla, ja se voi myรถs mรครคrittรครค uusia paikantimia.
Manifest rekisterรถidรครคn lรคhettรคmรคllรค viesti IDE-laajennukseen, kuten virallisessa lomakkeessa nรคkyy. Selenium IDE-laajennuksen dokumentaatio.
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);
Nimeรคmiskรคytรคntรถ sรคilyy migraation jรคlkeenkin: lisรคosien komento ilmoitetaan edelleen kerran ja sitรค kรคytetรครคn uudelleen jokaisessa testissรค, aivan kuten Core-laajennustakin.
Suosittuja laajennuksia ja lisรคosia, joita kรคytetรครคn Selenium IDE
Alla olevat lisรคosat olivat yleisimmin kรคytettyjรค vanhassa IDE:ssรค. Useat niistรค, kuten vuonhallinta ja kuvakaappaus virhetilanteissa, ovat nyt sisรครคnrakennettuina nykyiseen IDE:hen tai saatavilla yllรคpidettyinรค lisรคosina.
| Nimi | Tarkoitus |
|---|---|
| Suosikit | Testipaketin merkitseminen suosikiksi ja sen suorittaminen yhdellรค napsautuksella |
| Flex Pilot X | Flex-pohjaiseen automaatioon |
| FlexMonkium | Adobe Flex -pohjaiseen tallennukseen ja toistoon testaus in Selenium IDE |
| Tiedostojen kirjaaminen | Lokien tallentamiseen tiedostoon |
| Flow Control | Testin suoritusvirran ohjaamiseen |
| Korosta Elementit | Verkkosรครคtimen korostaminen |
| Epรคsuora odota | Odottaa elementtiรค tietyn ajan |
| Kuvakaappaus epรคonnistumisesta | Ota kuvakaappaus epรคonnistumisesta |
| Testitulokset | Tallenna testitapaus testisarjan tulos yhdellรค napsautuksella |
Vanha SeleniumNรคitรค tiedostoja isรคnnรถinyt HQ-lataussivu ei ole enรครค olemassa. Nykyiset laajennukset ja itse IDE jaellaan osoitteesta Selenium IDE-projektisivusto ja Chromesta, Firefox ja Edge-lisรคosakaupat.
Lataa Selenium Tรคssรค opetusohjelmassa kรคytetty ydinlaajennus









