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".
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.
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.
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.
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.
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.
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.
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.
Step 5) Valige raadionupp One Way.
Selle klõpsamiskäsu täitmiseks vajutage klaviatuuril klahvi X. Pange tähele, et raadionupp One Way valiti.
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.
Step 3) Kopeerige lingi tekst Firebugis ja kleepige see sinna Selenium IDE-d Target kasti. Kinnitage selle ees "link=".
Step 4) Klõpsake nuppu Otsi ja pange tähele Selenium IDE suutis lingi REGISTER õigesti esile tõsta.
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 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.
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 – 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.
getElementById
|
|
getElementsByName
|
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".
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.
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 – 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".
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: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.
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.
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 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.
Step 2) Paremklõpsake elemendi HTML-koodil ja seejärel valige suvand "Kopeeri XPath".
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 “//”.
Step 4) Klõpsake nuppu Otsi. Selenium IDE peaks suutma oranži kasti esile tõsta, nagu allpool näidatud.
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 |