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รค.

  • ๐Ÿ”˜ Kolme pilaria: Jokainen Selenese-komento on toiminto, aksessori tai vรคittรคmรค tai paikanninstrategia.
  • โ˜‘๏ธ Nimeรคmissรครคnnรถt: Toiminnot alkavat do-operaattorilla, aksessorit get- tai is-operaattorilla ja paikantimet locateElementBy-operaattorilla.
  • โœ… Vapaa odotus -komento: doTextUpperCase-metodin rekisterรถiminen saa IDE:n luomaan textUpperCaseAndWait-metodin automaattisesti.
  • ๐Ÿงช Kuormitusmekanismi: IDE lukee user-extensions.js-tiedoston kรคynnistyksen yhteydessรค, joten tyรถkalu on kรคynnistettรคvรค uudelleen jokaisen muokkauksen jรคlkeen.
  • ๐Ÿ› ๏ธ Perintรถtila: Selenium Ydin ja Firefox-plugin IDE poistettiin kรคytรถstรค, ja Selenium 3 poisti kรคyttรคjรคlaajennusten tuen jar-tiedostoista.
  • ๐Ÿ“Š Moderni reitti: Nykyinen selainlaajennusten IDE nรคyttรครค sen sijaan laajennusluettelon ja suoritusskriptikomennon.

Selenium Ydinlaajennukset ja user-extensions.js-tiedosto

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.

  1. Toiminta: Mitรค toimintoa suoritat kรคyttรถliittymรคnรคytรถssรค.

    Selenium IDE-komentoluettelo, joka nรคyttรครค toimintokomennot, kuten napsautuksen ja kirjoittamisen

  2. Accessorit / Vรคite: Mitรค tarkistuksia teet kรคyttรถliittymรคstรค saamillesi tiedoille.

    Selenium IDE-kรคyttรถ- ja assertion-komennot, joiden etuliitteinรค ovat get, is, verify ja assert

  3. Paikanninstrategia: Nรคin lรถydรคt elementin kรคyttรถliittymรคstรค.

    Selenium IDE-kohdelaatikko, joka listaa paikannusstrategioita, kuten id, name, css ja xpath

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.

Kaavio Selenium kรคyttรคjรคlaajennuksen kรคyttรคmรคt prototyyppi- ja PageBot-prototyyppiobjektit

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.

Selenium IDE, joka nรคyttรครค kรคyttรคjรคlaajennuksesta luodut get- ja is-kรคyttรถkomennot

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.

  1. Mene Selenium IDE ja napsauta Asetukset -> Asetuksetโ€ฆ

    Selenium IDE-asetukset-valikko avattiin Asetukset-valintaikkunan avaamiseksi

  2. In general osiossa valitse juuri luodun Selenium Ytimen laajennus.

    Selenium IDE-asetukset-valintaikkunan Yleiset-vรคlilehti Selenium Ydinlaajennusten tiedostopolkukenttรค

  3. Napauta OK ja kรคynnistรค uudelleen Selenium SDI.

    Vahvistuskehote nรคytetรครคn, kun Selenium IDE kรคynnistetรครคn uudelleen laajennustiedoston lataamiseksi

  4. Lรถydรคt laajennuksen komentoluettelosta.

    Selenium IDE-komennon alasvetovalikko, jossa luetellaan uusi textUpperCase-komento user-extensions.js-tiedostosta

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

UKK

Perinteinen nimi on user-extensions.js, ja IDE-tason lisรคosat kรคyttivรคt user-extensions-ide.js:รครค. Vanhassa IDE:ssรค voit osoittaa mihin tahansa polkuun, joten nimi oli pikemminkin sopimus kuin ehdoton vaatimus, mutta pidรคping se helpottaa jaettujen sviittien tunnistamista.

Prototyyppifunktiot ovat vain luettavissa IDE:n latautumisen aikana, joten kรคynnistyksen jรคlkeen tehtyjรค muokkausta ei oteta huomioon. Tallenna tiedosto, sulje IDE kokonaan ja avaa se uudelleen. JavaSkriptin syntaksivirhe estรครค myรถs koko tiedoston latautumisen hiljaisesti.

Avaa selainkonsoli ja kรคynnistรค IDE uudelleen. Tarkkaile sitten tiedoston jรคsennysvirhettรค. Lisรครคmรคllรค console.log-rivin tiedoston alkuun voit varmistaa, latautuiko tiedosto ollenkaan, ennen kuin aloitat yksittรคisten funktioiden virheenkorjauksen.

Kirjoitat vain do-etuliitteellรค varustetun version. Selenium IDE johtaa AndWait-variantin puolestasi, joka suorittaa saman toiminnon ja odottaa sitten sivun latautumisen pรครคttymistรค. Kรคytรค AndWait-lomaketta, kun toiminto kรคynnistรครค navigoinnin.

Koneoppimismallit voivat luonnostella uuden komennon pohjapiirroksen ja ehdottaa paikannusstrategiaa sivun tilannevedoksesta. Tekoรคlyavusteinen paikannuskorjaus on myรถs tรคssรค hyรถdyllinen, koska mukautettu locateElementBy-funktio on juuri se koodi, joka rikkoutuu, kun merkinnรคt muuttuvat.

Osittain. Copilot toistaa Selenium.prototype- ja PageBot.prototype-malleja, koska niitรค esiintyy paljon vanhemmissa repositorioissa, mutta se saattaa keksiรค apumetodeja, joita ei ole koskaan ollut olemassa. Tarkista jokainen ehdotettu kutsu Selenese-komentoviitteettรค vasten ennen kuin luotat siihen.

Kyllรค. Tiedosto, joka sisรคltรครค vain locateElementBy-funktion PageBot.prototype-tiedostossa, on kelvollinen. Uusi strategia tulee sitten kaikkien olemassa olevien komentojen saataville, joten click, type ja assert voivat kaikki kohdistaa elementteihin sen kautta.

Selenium RC hyvรคksyi kรคyttรคjรคtunnistetiedoston palvelinkytkimen kautta, mutta RC ja Selenium Ydin poistettiin vuonna Selenium 3. WebDriverilla ei ole vastaavaa koukkua, joten sama logiikka kirjoitetaan tavallisena apumetodina testikehyksessรคsi.

Tiivistรค tรคmรค viesti seuraavasti: