Hakulaitteet sisään Selenium
Mitä paikantajat ovat?
Locator on komento, joka kertoo Selenium IDE mitkä GUI-elementit ( sano Text Box, Painikkeet, Tarkista Boxes jne) sen tarvitsee toimia. Oikeiden GUI-elementtien tunnistaminen on edellytys automaatiokomentosarjan luomiselle. Mutta GUI-elementtien tarkka tunnistaminen on vaikeampaa kuin miltä se kuulostaa. Joskus päädyt työskentelemään väärien GUI-elementtien kanssa tai ilman elementtejä ollenkaan! Siten, Selenium tarjoaa joukon paikantimia graafisen käyttöliittymän elementin tarkkaan paikantamiseen
On komentoja, jotka eivät vaadi paikanninta (kuten "open"-komento). Useimmat niistä tarvitsevat kuitenkin elementtipaikannuksia Selenium web-ajuri.
Paikannin valinta riippuu pitkälti testattavana olevasta sovelluksestasi. Tässä opetusohjelmassa vaihdetaan Facebookin ja uusien tours.demoaut-tiedostojen välillä näiden sovellusten tukemien paikantimien perusteella. Samoin sinun Testaus projektiin, valitset minkä tahansa yllä luetelluista elementin paikantimista Selenium webdriver sovellustuen perusteella.
Sijainti tunnuksella
Tämä on yleisin tapa paikantaa elementtejä, koska tunnusten oletetaan olevan yksilöllisiä jokaiselle elementille.
Target Format: id=elementin id
Tässä esimerkissä käytämme Facebookia testisovelluksenamme, koska Mercury Retket eivät käytä ID-attribuutteja.
Vaihe 1) Tämän opetusohjelman luomisen jälkeen Facebook on muuttanut kirjautumissivun ulkoasua. Käytä tätä esittelysivua https://demo.guru99.com/test/facebook.html testausta varten. Tarkista "Sähköposti tai puhelin" -tekstiruutu Firebugilla ja merkitse muistiin sen tunnus. Tässä tapauksessa tunnus on "sähköposti".
Vaihe 2) Käynnistää Selenium IDE ja kirjoita "id=email". Target laatikko. Napsauta Etsi-painiketta ja huomaa, että "Sähköposti tai puhelin" -tekstiruutu korostuu keltaisella ja reunustuu vihreällä, mikä tarkoittaa Selenium IDE pystyi paikantamaan kyseisen elementin oikein.
Paikannus nimen perusteella
Elementtien paikantaminen nimen perusteella on hyvin samankaltaista kuin paikantaminen tunnuksella, paitsi että käytämme "nimi=" etuliite sen sijaan.
Target Format: nimi=elementin nimi
Seuraavassa esittelyssä käytämme nyt Mercury Matkat, koska kaikilla merkittävillä elementeillä on nimet.
Vaihe 1) Navigoida johonkin https://demo.guru99.com/test/newtours/ ja tarkista "Käyttäjänimi"-tekstiruutu Firebugilla. Ota huomioon sen nimiominaisuus.
Tässä näemme, että elementin nimi on "userName".
Vaihe 2) In Selenium IDE, kirjoita "nimi=käyttäjänimi". Target -ruutua ja napsauta Etsi-painiketta. Selenium IDE:n pitäisi pystyä paikantamaan Käyttäjänimi-tekstiruutu korostamalla se.
Kuinka paikantaa elementti nimen perusteella suodattimien avulla
Suodattimia voidaan käyttää, kun useilla elementeillä on sama nimi. Suodattimet ovat lisämääritteitä, joita käytetään erottamaan samannimiset elementit.
Target muodostuu: nimi=elementin_nimi filter=suodattimen_arvo
Katsotaanpa esimerkkiä -
Vaihe 1) Kirjautua Mercury Retket.
Kirjautua Mercury Retket, joissa käyttäjätunnuksena ja salasanana käytetään "tutoriaalia". Sen pitäisi viedä sinut alla näkyvälle Flight Finder -sivulle.
Vaihe 2) Käytä firebugia käyttämällä VALUE attribuuttia.
Huomaa Firebugia käyttämällä, että Round Trip- ja One Way -valintanapeilla on sama nimi "tripType". Niillä on kuitenkin erilaiset VALUE-attribuutit, joten voimme käyttää niitä kutakin suodattimena.
Vaihe 3) Napsauta ensimmäistä riviä.
- Käytämme ensin One Way -valintanappia. Napsauta editorin ensimmäistä riviä.
- Kohteen komentokentässä Selenium IDE, kirjoita komento "click".
- In Target kirjoita "name=tripType value=oneway". Arvo = yksisuuntainen osa on suodattimemme.
Vaihe 4) Napsauta Etsi-painiketta.
Huomaa, että Selenium IDE pystyy korostamaan One Way -valintanapin vihreällä, mikä tarkoittaa, että voimme käyttää elementtiä onnistuneesti käyttämällä sen VALUE-attribuuttia.
Vaihe 5) Valitse One Way -valintanappi.
Suorita tämä napsautuskomento painamalla näppäimistön X-näppäintä. Huomaa, että One Way -valintanappi valittiin.
Voit tehdä täsmälleen saman asian Round Trip -valintanapilla, tällä kertaa käyttämällä kohteena "name=tripType value=roundtrip".
Paikannus linkin tekstin perusteella
Tämän tyyppinen CSS-paikannin sisään Selenium koskee vain hyperlinkkitekstejä. Pääsemme linkkiin lisäämällä kohteen eteen "link=" ja sen jälkeen hyperlinkin tekstin.
Target muodostuu: linkki=linkki_teksti
Tässä esimerkissä pääsemme "REKISTERÖIDY" -linkkiä, joka löytyy Mercury Tours kotisivut.
Vaihe 1)
- Varmista ensin, että olet kirjautunut ulos Mercury Retket.
- Mene Mercury Tours kotisivut.
Vaihe 2)
- Tarkista Firebugilla REKISTERÖIDY-linkki. Linkkiteksti löytyy ja -tunnisteiden väliltä.
- Tässä tapauksessa linkkitekstimme on "REKISTERÖIDY". Kopioi linkin teksti.
Vaihe 3) Kopioi linkin teksti Firebugiin ja liitä se siihen Selenium IDE: t Target laatikko. Liitä sen eteen "link=".
Vaihe 4) Napsauta Etsi-painiketta ja huomaa se Selenium IDE pystyi korostamaan REGISTER-linkin oikein.
Vaihe 5) Vahvista lisää kirjoittamalla "clickAndWait" komentoruutuun ja suorittamalla se. Selenium IDE:n pitäisi pystyä napsauttamaan REKISTERÖIDY-linkkiä onnistuneesti ja viemään sinut alla näkyvälle rekisteröintisivulle.
Paikannus DOM:n mukaan (asiakirjaobjektimalli)
- Asiakirjaobjektimalli (DOM)Yksinkertaisesti sanottuna on tapa, jolla HTML-elementit rakennetaan. Selenium IDE pystyy käyttämään DOM:ia sivuelementtien käyttämiseen. Jos käytämme tätä menetelmää, meidän Target laatikko alkaa aina "dom=document…"; kuitenkin "dom="-etuliite poistetaan yleensä, koska Selenium IDE pystyy automaattisesti tulkitsemaan kaiken, joka alkaa avainsanalla "dokumentti" poluksi DOM:n sisällä. Selenium tapauksessa.
On neljä perustapaa paikantaa elementti DOM:n kautta Selenium:
- getElementById
- getElementsByName
- dom:name (koskee vain nimetyn lomakkeen elementtejä)
- dom:index
Paikannus DOM:lla – getElementById
Keskitytään ensimmäiseen menetelmään - käyttämällä DOM in getElementById-menetelmää Selenium. Syntaksi olisi:
Syntaksi
document.getElementById("id of the element")
- elementin id = tämä on käytettävän elementin ID-attribuutin arvo. Tämä arvo tulee aina sulkea sulkujen ("") sisällä.
Vaihe 1) Käytä tätä esittelysivua https://demo.guru99.com/test/facebook.html Siirry siihen ja tarkista "Pidä minut kirjautuneena" -valintaruutu Firebugilla. Huomioi sen tunnus.
Voimme nähdä, että ID, jota meidän tulisi käyttää, on "persist_box".
Vaihe 2) avoin Selenium IDE ja Target kirjoita "document.getElementById("persist_box")" ja napsauta Etsi. Selenium IDE:n pitäisi pystyä löytämään "Pidä minut kirjautuneena" -valintaruutu. Vaikka se ei voi korostaa valintaruudun sisäosaa, Selenium IDE voi silti ympäröidä elementin kirkkaan vihreällä reunuksella alla olevan kuvan mukaisesti.
Paikannus DOM:lla – getElementsByName
GetElementById-menetelmä voi käyttää vain yhtä elementtiä kerrallaan, ja se on elementti, jolla on määrittämäsi tunnus. getElementsByName-menetelmä on erilainen. Se kerää joukon elementtejä, joilla on määrittämäsi nimi. Pääset yksittäisiin elementteihin käyttämällä indeksiä, joka alkaa 0:sta.
getElementById
|
|
getElementsByName
|
Syntaksi
document.getElementsByName(“name“)[index]
- name = elementin nimi, joka on määritetty sen 'name'-attribuutilla
- index = kokonaisluku, joka osoittaa, mitä elementtiä getElementsByNamen taulukossa käytetään.
Vaihe 1) Navigoida johonkin Mercury Toursin kotisivu ja kirjaudu sisään käyttämällä "tutoriaalia" käyttäjätunnuksena ja salasanana. Firefox pitäisi viedä sinut Flight Finder -näyttöön.
Vaihe 2) Tarkista Firebugin avulla sivun alaosan kolme valintanappia (turistiluokka, yritysluokka ja ensimmäinen luokka). Huomaa, että niillä kaikilla on sama nimi, joka on "servClass".
Vaihe 3) Avataan ensin Economy Class -valintanappi. Kaikista näistä kolmesta valintanapista tämä elementti on ensin, joten sen indeksi on 0. In Selenium IDE, kirjoita "document.getElementsByName("servClass")[0]" ja napsauta Etsi-painiketta. Selenium IDE:n pitäisi pystyä tunnistamaan Economy Class -valintanappi oikein.
Vaihe 4) Muuta indeksinumeroksi 1, jotta sinun Target muuttuu nyt document.getElementsByName("servClass")[1]. Napsauta Etsi-painiketta ja Selenium IDE:n pitäisi pystyä korostamaan "Business class" -valintanappia alla olevan kuvan mukaisesti.
Paikannus DOM:n mukaan – dom:name
Kuten aiemmin mainittiin, tätä menetelmää käytetään vain, jos käyttämäsi elementti sisältyy nimettyyn muotoon.
Syntaksi
document.forms[“name of the form“].elements[“name of the element“]
- lomakkeen nimi = sen lomaketunnisteen name-attribuutin arvo, joka sisältää käytettävän elementin
- elementin nimi = sen elementin name-attribuutin arvo, jota haluat käyttää
Vaihe 1) Navigoida johonkin Mercury Tours kotisivut https://demo.guru99.com/test/newtours/ ja tarkista Käyttäjänimi-tekstiruutu Firebugilla. Huomaa, että se sisältyy muotoon nimeltä "koti".
Vaihe 2) In Selenium IDE, kirjoita "document.forms["home"].elements["userName"]" ja napsauta Etsi-painiketta. Selenium IDE:n on voitava käyttää elementtiä onnistuneesti.
Paikannus DOM:n mukaan – dom:index
Tätä menetelmää sovelletaan myös silloin, kun elementti ei ole nimetyssä lomakkeessa, koska se käyttää lomakkeen hakemistoa, ei sen nimeä.
Syntaksi
document.forms[index of the form].elements[index of the element]
- lomakkeen indeksi = lomakkeen hakemistonumero (alkaen 0:sta) koko sivun suhteen
- elementin indeksi = elementin indeksinumero (alkaen 0:sta) suhteessa koko sen sisältävään muotoon
Pääsemme "Puhelin"-tekstiruutuun Mercury Retket ilmoittautumissivu. Tämän sivun lomakkeella ei ole nimeä ja ID-määritettä, joten tämä on hyvä esimerkki.
Vaihe 1) Navigoida johonkin Mercury Tours-rekisteröintisivu ja tarkista Puhelin-tekstiruutu. Huomaa, että sen sisältävällä lomakkeella ei ole tunnus- ja nimimääritteitä.
Vaihe 2) Kirjoita "document.forms[0].elements[3]". Selenium IDE: t Target -ruutua ja napsauta Etsi-painiketta. Selenium IDE:n pitäisi pystyä käyttämään Puhelin-tekstiruutua oikein.
Vaihe 3) Vaihtoehtoisesti voit käyttää elementin nimeä sen indeksin sijaan ja saada saman tuloksen. Kirjoita "document.forms[0].elements["phone"]". Selenium IDE: t Target laatikko. Puhelin-tekstiruudun tulisi silti olla korostettuna.
Paikannus XPathilla
XPath on kieli, jota käytetään etsittäessä XML-solmuja (Extensible Markup Language). Koska HTML:ää voidaan pitää XML:n toteutuksena, voimme myös käyttää XPath HTML-elementtien etsimisessä.
- Advantage: Se voi käyttää melkein mitä tahansa elementtiä, myös niitä, joissa ei ole luokka-, nimi- tai id-attribuutteja.
- haitta: Se on monimutkaisin tapa tunnistaa elementtejä liian monien erilaisten sääntöjen ja huomioiden vuoksi.
Onneksi Firebug voi luoda XPathin automaattisesti Selenium paikantimet. Seuraavassa esimerkissä pääsemme kuvaan, jota ei voi mitenkään käyttää aiemmin keskustelemillamme menetelmillä.
Vaihe 1) Navigoida johonkin Mercury Tours-kotisivu ja käytä Firebugia tarkastaaksesi oranssin suorakulmion keltaisen "Linkit"-ruudun oikealla puolella. Katso alla olevaa kuvaa.
Vaihe 2) Napsauta hiiren kakkospainikkeella elementin HTML-koodia ja valitse sitten "Kopioi XPath" -vaihtoehto.
Vaihe 3) In Selenium IDE, kirjoita yksi vinoviiva "/" -kenttään Target Liitä XPath, jonka kopioimme edellisessä vaiheessa. Merkintä sinun Target laatikon pitäisi nyt alkaa kahdella vinoviivalla "//".
Vaihe 4) Napsauta Etsi-painiketta. Selenium IDE:n pitäisi pystyä korostamaan oranssi laatikko alla olevan kuvan mukaisesti.
Yhteenveto
Syntaksi paikantimen käytölle
Menetelmä | Target Syntaksi | esimerkki |
---|---|---|
Tunnuksella | id= elementin_tunnus | id=sähköposti |
Nimeltä | nimi=elementin_nimi | nimi=käyttäjänimi |
Nimen mukaan käyttämällä suodattimia | nimi=elementin_nimi filter=suodattimen_arvo | name=tripType value=oneway |
Linkin tekstillä | linkki=linkki_teksti | link = REKISTERÖIDY |