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









