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".

Sijainti tunnuksella

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.

Sijainti tunnuksella

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.

Paikannus nimen perusteella

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.

Paikannus nimen perusteella

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.

Etsi elementti nimen mukaan käyttämällä suodattimia

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.

Etsi elementti nimen mukaan käyttämällä suodattimia

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.

Etsi elementti nimen mukaan käyttämällä suodattimia

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.

Etsi elementti nimen mukaan käyttämällä suodattimia

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.

Etsi elementti nimen mukaan käyttämällä suodattimia

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.

Paikannus linkin tekstin perusteella

Vaihe 3) Kopioi linkin teksti Firebugiin ja liitä se siihen Selenium IDE: t Target laatikko. Liitä sen eteen "link=".

Paikannus linkin tekstin perusteella

Vaihe 4) Napsauta Etsi-painiketta ja huomaa se Selenium IDE pystyi korostamaan REGISTER-linkin oikein.

Paikannus linkin tekstin perusteella

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 linkin tekstin perusteella

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.

Paikannus DOM:lla – getElementById

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 – getElementById

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.

Paikannus DOM:lla – getElementsByName

getElementById

  • Se saa sinulle vain yhden elementin.
  • Tämä elementti sisältää tunnuksen, jonka määritit getElementById(:n) suluissa.

Paikannus DOM:lla – getElementsByName

getElementsByName

  • Se saa kokoelman elementtejä, joiden kaikki nimet ovat samat.
  • Jokainen elementti on indeksoitu numerolla, joka alkaa 0:sta, aivan kuten taulukko
  • Voit määrittää, mitä elementtiä haluat käyttää asettamalla sen indeksinumeron hakasulkeisiin getElementsByNamen syntaksissa alla.

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".

Paikannus DOM:lla – getElementsByName

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.

Paikannus DOM:lla – getElementsByName

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:lla – getElementsByName

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".

Paikannus DOM:n mukaan – dom:name

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:name

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ä.

Paikannus DOM:n mukaan – dom:index

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.

Paikannus DOM:n mukaan – dom:index

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 DOM:n mukaan – dom:index

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.

Paikannus XPathilla

Vaihe 2) Napsauta hiiren kakkospainikkeella elementin HTML-koodia ja valitse sitten "Kopioi XPath" -vaihtoehto.

Paikannus XPathilla

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 "//".

Paikannus XPathilla

Vaihe 4) Napsauta Etsi-painiketta. Selenium IDE:n pitäisi pystyä korostamaan oranssi laatikko alla olevan kuvan mukaisesti.

Paikannus XPathilla

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