Lokaatorid sisse Selenium

Mis on lokaatorid?

Locator on käsk, mis ütleb Selenium IDE millised GUI elemendid (öelge Text Box, nupud, kontroll Boxes jne) selle vajadused opereerimiseks. Õigete GUI elementide tuvastamine on automatiseerimisskripti loomise eeltingimus. Kuid GUI elementide täpne tuvastamine on keerulisem, kui see kõlab. Mõnikord töötate valede GUI elementidega või üldse mitte! Seega Selenium pakub GUI elemendi täpseks asukoha määramiseks mitmeid lokaatoreid

On käske, mis ei vaja lokaatorit (nt käsk "ava"). Kuid enamik neist vajab elementide lokaatoreid Selenium veebidraiver.

Lokaatori valik sõltub suuresti teie testitavast rakendusest. Selles õpetuses vahetame Facebooki, uue tours.demoaut vahel nende rakenduste toetatavate lokaatorite alusel. Samamoodi ka sinus Testimine projekti, valite mis tahes ülalloetletud elementide lokaatoritest Selenium veebidraiver, mis põhineb teie rakenduse toel.

Asukoha tuvastamine ID järgi

See on kõige levinum viis elementide asukoha leidmiseks, kuna iga elemendi ID-d peaksid olema kordumatud.

Target Formaat: id=id elemendi

Selle näite puhul kasutame testirakendusena Facebooki, kuna Mercury Ringkäigud ei kasuta ID-atribuute.

Step 1) Alates selle õpetuse loomisest on Facebook muutnud oma sisselogimislehe kujundust. Kasutage seda demo lehte https://demo.guru99.com/test/facebook.html testimiseks. Kontrollige Firebugi abil tekstikasti „E-post või telefon” ja märkige üles selle ID. Sel juhul on ID "e-post".

Asukoha tuvastamine ID järgi

Step 2) Algatama Selenium IDE ja sisestage väljale "id=email". Target kasti. Klõpsake nupul Otsi ja pange tähele, et tekstikast "E-post või telefon" tõstetakse esile kollasega ja ääristatakse rohelisega, mis tähendab, Selenium IDE suutis selle elemendi õigesti leida.

Asukoha tuvastamine ID järgi

Otsimine nime järgi

Elementide leidmine nime järgi on väga sarnane ID-ga asukoha määramisele, välja arvatud see, et me kasutame "nimi=" asemel eesliide.

Target Formaat: nimi = elemendi nimi

Järgmises esitluses kasutame nüüd Mercury Ringkäigud, kuna kõigil olulistel elementidel on nimed.

Step 1) Liigu https://demo.guru99.com/test/newtours/ ja kasutage Firebugi tekstikasti „Kasutajanimi” kontrollimiseks. Pange tähele selle nime atribuuti.

Otsimine nime järgi

Siin näeme, et elemendi nimi on "kasutajanimi".

Step 2) In Selenium IDE, sisestage väljale "nimi=kasutajanimi". Target ja klõpsake nuppu Otsi. Selenium IDE peaks suutma leida tekstikasti Kasutajanimi selle esiletõstmisega.

Otsimine nime järgi

Kuidas leida elementi nime järgi filtrite abil

Filtreid saab kasutada, kui mitmel elemendil on sama nimi. Filtrid on lisaatribuudid, mida kasutatakse sama nimega elementide eristamiseks.

Target vorming: nimi=elemendi_nimi filter=filtri_väärtus

Vaatame näidet -

Step 1) Logi sisse Mercury Ekskursioonid.

Logi sisse Mercury Ringkäigud kasutavad kasutajanime ja paroolina "õpetust". See peaks viima teid allpool näidatud Flight Finderi lehele.

Otsige filtrite abil üles element nime järgi

Step 2) Firebugi kasutamisel kasutage VALUE atribuuti.

Firebugi kasutamisel pange tähele, et raadionuppudel Round Trip ja One Way on sama nimi "tripType". Neil on aga erinevad atribuudid VALUE, nii et saame neid kõiki oma filtrina kasutada.

Otsige filtrite abil üles element nime järgi

Step 3) Klõpsake esimest rida.

  • Esmalt avame raadionupu One Way. Klõpsake redaktori esimest rida.
  • Käsukastis Selenium IDE, sisestage käsk "click".
  • aasta Target väljale sisestage "name=tripType value=oneway". Jaotis „value=oneway” on meie filter.

Otsige filtrite abil üles element nime järgi

Step 4) Klõpsake nuppu Otsi.

Märka seda Selenium IDE suudab raadionupu One Way rohelisega esile tõsta – see tähendab, et pääseme elemendile edukalt juurde, kasutades selle atribuuti VALUE.

Otsige filtrite abil üles element nime järgi

Step 5) Valige raadionupp One Way.

Selle klõpsamiskäsu täitmiseks vajutage klaviatuuril klahvi X. Pange tähele, et raadionupp One Way valiti.

Otsige filtrite abil üles element nime järgi

Täpselt sama saate teha raadionupu Round Trip abil, kasutades sihtmärgiks "name=tripType value=roundtrip".

Asukoha määramine lingi teksti järgi

Seda tüüpi CSS-i lokaator sisse Selenium kehtib ainult hüperlinkide tekstide kohta. Lingile pääseme juurde, lisades oma sihtmärgi ette "link=" ja seejärel hüperlingi teksti.

Target vorming: link=link_text

Selles näites pääseme juurde lingile REGISTREERIMINE, mis asub aadressil Mercury Ekskursioonide koduleht.

Step 1)

  • Esiteks veenduge, et olete saidilt välja logitud Mercury Ekskursioonid.
  • Minna Mercury Ekskursioonide koduleht.

Step 2)

  • Kontrollige Firebugi abil linki REGISTREERIMINE. Lingi tekst leitakse ja siltide vahelt.
  • Sel juhul on meie lingi tekst “REGISTREERU”. Kopeerige lingi tekst.

Asukoha määramine lingi teksti järgi

Step 3) Kopeerige lingi tekst Firebugis ja kleepige see sinna Selenium IDE-d Target kasti. Kinnitage selle ees "link=".

Asukoha määramine lingi teksti järgi

Step 4) Klõpsake nuppu Otsi ja pange tähele Selenium IDE suutis lingi REGISTER õigesti esile tõsta.

Asukoha määramine lingi teksti järgi

Step 5) Edasiseks kontrollimiseks sisestage käsukasti "clickAndWait" ja käivitage see. Selenium IDE peaks saama sellel REGISTREERIMISE lingil edukalt klõpsata ja suunama teid allpool näidatud registreerimise lehele.

Asukoha määramine lingi teksti järgi

Asukoha määramine DOM-i järgi (dokumendiobjekti mudel)

. Dokumendiobjekti mudel (DOM)Lihtsamalt öeldes on HTML-i elementide struktureerimise viis. Selenium IDE suudab kasutada DOM-i leheelementidele juurdepääsuks. Kui me seda meetodit kasutame, siis meie Target kast algab alati sõnadega "dom=document…"; prefiks "dom=" eemaldatakse aga tavaliselt, kuna Selenium IDE suudab automaatselt tõlgendada kõike, mis algab märksõnaga „dokument”, DOM-i teeks. Selenium niikuinii.

Elemendi leidmiseks DOM-i kaudu on neli peamist viisi Selenium:

  • getElementById
  • getElementsByName
  • dom:nimi (kehtib ainult nimega vormi elementide kohta)
  • dom:index

Asukoha määramine DOM-i järgi – getElementById

Keskendume esimesele meetodile – kasutades DOM-i getElementById meetodit Selenium. Süntaks oleks järgmine:

Süntaks

document.getElementById("id of the element")

  • elemendi id = see on ligipääsetava elemendi ID atribuudi väärtus. See väärtus peaks alati olema sulgudes (“”).

Step 1) Kasutage seda demo lehte https://demo.guru99.com/test/facebook.html Liikuge selle juurde ja kasutage Firebugi, et kontrollida märkeruutu „Hoia mind sisse logituna”. Võtke teadmiseks selle ID.

Asukoha määramine DOM-i järgi – getElementById

Näeme, et ID, mida peaksime kasutama, on "persist_box".

Step 2) avatud Selenium IDE ja Target kasti sisestage "document.getElementById("persist_box")" ja klõpsake nuppu Otsi. Selenium IDE peaks suutma leida märkeruudu "Hoia mind sisse logituna". Kuigi see ei saa märkeruudu sisemust esile tõsta, Selenium IDE võib siiski ümbritseda elementi erkrohelise äärisega, nagu allpool näidatud.

Asukoha määramine DOM-i järgi – getElementById

Asukoha määramine DOM-i järgi – getElementsByName

Meetod getElementById pääseb korraga juurde ainult ühele elemendile ja see on teie määratud ID-ga element. GetElementsByName meetod on erinev. See kogub elementide massiivi, millel on teie määratud nimi. Üksikutele elementidele pääsete juurde indeksiga, mis algab 0-st.

Asukoha määramine DOM-i järgi – getElementsByName

getElementById

  • See saab teile ainult ühe elemendi.
  • See element kannab ID-d, mille määrasite käsu getElementById() sulgudes.

Asukoha määramine DOM-i järgi – getElementsByName

getElementsByName

  • See saab kogumi elemente, mille nimed on kõik ühesugused.
  • Iga element on indekseeritud numbriga, mis algab nullist nagu massiiv
  • Saate määrata, millisele elemendile soovite juurde pääseda, pannes selle indeksi numbri allolevas getElementsByName'i süntaksis nurksulgudesse.

Süntaks

document.getElementsByName(“name“)[index]

  • name = elemendi nimi, mis on määratletud selle atribuudiga "name".
  • indeks = täisarv, mis näitab, millist elementi getElementsByName massiivis kasutatakse.

Step 1) Liigu Mercury Toursi koduleht ja sisselogimine, kasutades kasutajanime ja paroolina "õpetust". Firefox peaks viima teid Flight Finderi ekraanile.

Step 2) Kontrollige Firebugi abil lehe allosas olevaid kolme raadionuppu (turistiklassi, äriklassi ja esimese klassi raadionupud). Pange tähele, et neil kõigil on sama nimi, mis on "servClass".

Asukoha määramine DOM-i järgi – getElementsByName

Step 3) Avage esmalt raadionupp „Turvaklass”. Kõigist nendest kolmest raadionupust on see element esimesel kohal, seega on selle indeks 0. In Selenium IDE, tippige "document.getElementsByName("servClass")[0]" ja klõpsake nuppu Otsi. Selenium IDE peaks suutma turistiklassi raadionupu õigesti tuvastada.

Asukoha määramine DOM-i järgi – getElementsByName

Step 4) Muutke indeksi number 1-ks, nii et teie Target muutub nüüd document.getElementsByName(“servClass”)[1]. Klõpsake nuppu Otsi ja Selenium IDE peaks suutma esile tõsta raadionuppu „Äriklass”, nagu allpool näidatud.

Asukoha määramine DOM-i järgi – getElementsByName

Asukoha määramine DOM-i järgi – dom:nimi

Nagu varem mainitud, rakendub see meetod ainult siis, kui element, millele juurde pääsete, sisaldub nimelises vormis.

Süntaks

document.forms[“name of the form“].elements[“name of the element“]

  • name of the form = vormisildi atribuudi name väärtus, mis sisaldab elementi, millele soovite juurde pääseda
  • elemendi nimi = elemendi, millele soovite juurde pääseda, atribuudi nimi väärtus

Step 1) Liigu Mercury Ekskursioonide koduleht https://demo.guru99.com/test/newtours/ ja kasutage Firebugi, et kontrollida tekstikasti Kasutajanimi. Pange tähele, et see sisaldub vormis nimega "kodu".

Asukoha määramine DOM-i järgi – dom:nimi

Step 2) In Selenium IDE, tippige "document.forms["home"].elements["kasutajanimi"]" ja klõpsake nuppu Otsi. Selenium IDE peab saama elemendile edukalt juurde pääseda.

Asukoha määramine DOM-i järgi – dom:nimi

Asukoha määramine DOM-i järgi – dom:index

See meetod kehtib isegi siis, kui element ei asu nimega vormis, kuna see kasutab vormi registrit, mitte nime.

Süntaks

document.forms[index of the form].elements[index of the element]

  • vormi indeks = vormi indeksi number (alates 0-st) kogu lehekülje suhtes
  • elemendi indeks = elemendi indeksi number (alates 0-st) kogu seda sisaldava vormi suhtes

Juurdepääseme sees olevale tekstikastile "Telefon". Mercury Ekskursioonide registreerimise leht. Sellel lehel oleval vormil pole nime ega ID-atribuuti, seega on see hea näide.

Step 1) Liigu Mercury Ekskursioonide registreerimise leht ja kontrollige tekstikasti Telefon. Pange tähele, et seda sisaldaval vormil pole ID- ja nimeatribuute.

Asukoha määramine DOM-i järgi – dom:index

Step 2) Sisestage "document.forms[0].elements[3]". Selenium IDE-d Target ja klõpsake nuppu Otsi. Selenium IDE peaks saama telefoni tekstikasti õigesti juurde pääseda.

Asukoha määramine DOM-i järgi – dom:index

Step 3) Teise võimalusena võite kasutada elemendi nime selle indeksi asemel ja saada sama tulemus. Sisestage "document.forms[0].elements["phone"] Selenium IDE-d Target kasti. Tekstikast Telefon peaks siiski olema esile tõstetud.

Asukoha määramine DOM-i järgi – dom:index

Asukoha määramine XPathi abil

XPath on keel, mida kasutatakse XML-i (Extensible Markup Language) sõlmede leidmisel. Kuna HTML-i võib pidada XML-i teostuseks, võime ka kasutada XPath HTML-i elementide leidmisel.

  • Eelis: Sellel on juurdepääs peaaegu igale elemendile, isegi ilma klassi, nime või ID atribuutideta.
  • Puudus: See on kõige keerulisem meetod elementide tuvastamiseks liiga paljude erinevate reeglite ja kaalutluste tõttu.

Õnneks suudab Firebug XPathi automaatselt genereerida Selenium lokaatorid. Järgmises näites pääseme juurde pildile, millele ei ole võimalik juurde pääseda varem käsitletud meetodite kaudu.

Step 1) Liigu Mercury Toursi koduleht ja kasutage Firebugi, et kontrollida kollasest kastist "Lingid" paremal olevat oranži ristkülikut. Vaadake allolevat pilti.

Asukoha määramine XPathi abil

Step 2) Paremklõpsake elemendi HTML-koodil ja seejärel valige suvand "Kopeeri XPath".

Asukoha määramine XPathi abil

Step 3) In Selenium IDE, tippige üks kaldkriips "/". Target kasti ja seejärel kleepige eelmises etapis kopeeritud XPath. Kirje teie Target kast peaks nüüd algama kahe ettepoole suunatud kaldkriipsuga “//”.

Asukoha määramine XPathi abil

Step 4) Klõpsake nuppu Otsi. Selenium IDE peaks suutma oranži kasti esile tõsta, nagu allpool näidatud.

Asukoha määramine XPathi abil

kokkuvõte

Lokaatori kasutamise süntaks

Meetod Target Süntaks Näide
ID järgi id= elemendi_id id=e-post
Nimepidi nimi=elemendi_nimi nimi=kasutajanimi
Nime järgi, kasutades filtreid nimi=elemendi_nimi filter=filtri_väärtus name=tripType value=oneway
Lingi teksti järgi link=link_text link=REGISTREERU