Keresők be Selenium
Mik azok a lokátorok?
A Locator egy parancs, amely megmondja Selenium IDE mely GUI elemek (mondjuk Text Box, Gombok, Check Boxes stb.) működéséhez szükséges. A megfelelő GUI-elemek azonosítása az automatizálási szkript létrehozásának előfeltétele. A grafikus felület elemeinek pontos azonosítása azonban nehezebb, mint amilyennek hangzik. Néha előfordul, hogy helytelen grafikus felhasználói felület elemekkel dolgozik, vagy egyáltalán nincs elem! Ezért, Selenium számos lokátort biztosít a grafikus felület elemeinek pontos meghatározásához
Vannak olyan parancsok, amelyekhez nincs szükség lokátorra (például az „open” parancs). A legtöbbjüknek azonban elemkeresőkre van szüksége Selenium webdriver.
A lokátor megválasztása nagymértékben függ az Ön által tesztelt alkalmazástól. Ebben az oktatóanyagban a Facebook és az új tours.demoaut között váltunk az alkalmazások által támogatott helymeghatározók alapján. Hasonlóképpen a tiédben is Tesztelés projektben kiválaszthatja a fent felsorolt elemkeresők bármelyikét Selenium webdriver, az alkalmazás támogatása alapján.
Helymeghatározás azonosító alapján
Ez a leggyakoribb módja az elemek helymeghatározásának, mivel az azonosítóknak minden elemhez egyedinek kell lenniük.
Target Formátum: id=az elem azonosítója
Ebben a példában a Facebookot használjuk tesztalkalmazásunkként, mert Mercury A körutazások nem használnak azonosító attribútumokat.
Step 1) Az oktatóanyag létrehozása óta a Facebook megváltoztatta a bejelentkezési oldal kialakítását. Használja ezt a bemutató oldalt https://demo.guru99.com/test/facebook.html tesztelésre. Ellenőrizze az „E-mail vagy Telefon” szövegmezőt a Firebug segítségével, és jegyezze fel az azonosítóját. Ebben az esetben az azonosító „e-mail”.
Step 2) Indít Selenium IDE, és írja be az „id=email” kifejezést Target doboz. Kattintson a Keresés gombra, és vegye észre, hogy az „E-mail vagy telefon” szövegmező sárgával kiemelésre kerül, és zöld szegéllyel, ami azt jelenti, Selenium Az IDE megfelelően tudta megtalálni az elemet.
Helymeghatározás név szerint
Az elemek név szerinti helymeghatározása nagyon hasonlít az azonosító alapján történő helymeghatározáshoz, azzal a különbséggel, hogy a "név =" előtag helyett.
Target Formátum: név=az elem neve
A következő bemutatóban most azt fogjuk használni Mercury Túrák, mert minden jelentős elemnek neve van.
Step 1) navigáljon https://demo.guru99.com/test/newtours/ és a Firebug segítségével ellenőrizze a „Felhasználónév” szövegmezőt. Vegye figyelembe a név tulajdonságát.
Itt azt látjuk, hogy az elem neve „userName”.
Step 2) In Selenium IDE, írja be a következőt: „név=felhasználónév” a Target mezőbe, és kattintson a Keresés gombra. Selenium Az IDE-nek meg kell tudnia találni a Felhasználónév szövegmezőt annak kiemelésével.
Hogyan lehet elemet keresni név szerint szűrők segítségével
A szűrők akkor használhatók, ha több elemnek ugyanaz a neve. A szűrők további attribútumok, amelyek az azonos nevű elemek megkülönböztetésére szolgálnak.
Target Formátum:: name=az_elem_neve filter=a_szűrő értéke
Lássunk egy példát –
Step 1) Jelentkezzen be Mercury Túrák.
Jelentkezzen be Mercury Bejárások felhasználónévként és jelszóként „oktatóprogram” használatával. Az alábbiakban látható Flight Finder oldalra kell eljutnia.
Step 2) A firebug használata VALUE attribútumot használ.
A Firebug használatával figyelje meg, hogy a Round Trip és az One Way választógomboknak ugyanaz a neve: „tripType”. Azonban különböző VALUE attribútumokkal rendelkeznek, így mindegyiket használhatjuk szűrőként.
Step 3) Kattintson az első sorra.
- Először a One Way rádiógombot fogjuk elérni. Kattintson a Szerkesztő első sorára.
- A parancs mezőjében Selenium IDE, írja be a „click” parancsot.
- A Target mezőbe írja be: „name=tripType value=oneway”. Az „érték=egyirányú” rész a mi szűrőnk.
Step 4) Kattintson a Keresés gombra.
Figyelj erre Selenium Az IDE képes zöld színnel kiemelni a One Way rádiógombot – ami azt jelenti, hogy a VALUE attribútum használatával sikeresen elérhetjük az elemet.
Step 5) Válassza az Egyirányú rádiógombot.
Nyomja meg az „X” billentyűt a billentyűzeten a kattintási parancs végrehajtásához. Figyelje meg, hogy a One Way rádiógomb ki lett választva.
Pontosan ugyanezt teheti meg a Round Trip választógombbal is, ezúttal a „name=tripType value=roundtrip” kifejezést használva célként.
Helymeghatározás linkszöveg alapján
Ez a fajta CSS lokátor be Selenium csak hiperhivatkozás szövegekre vonatkozik. A hivatkozást úgy érjük el, hogy a célunk elé írjuk a „link=” karaktert, majd a hiperhivatkozás szövegét.
Target Formátum:: link=link_text
Ebben a példában elérjük a „REGISZTRÁCIÓ” hivatkozást, amely az oldalon található Mercury A túrák honlapja.
Step 1)
- Először győződjön meg arról, hogy ki van jelentkezve a webhelyről Mercury Túrák.
- Tovább Mercury A túrák honlapja.
Step 2)
- A Firebug segítségével ellenőrizze a „REGISZTRÁCIÓ” hivatkozást. A link szövege a és a címkék között található.
- Ebben az esetben a linkszövegünk „REGISZTRÁCIÓ”. Másold ki a link szövegét.
Step 3) Másolja ki a hivatkozás szövegét a Firebugban, és illessze be Selenium Idus Target doboz. A „link=” előtag elé illesztheti.
Step 4) Kattintson a Keresés gombra, és vegye észre Selenium Az IDE helyesen tudta kiemelni a REGISZTRÁCIÓ hivatkozást.
Step 5) A további ellenőrzéshez írja be a „clickAndWait” parancsot a parancsmezőbe, és hajtsa végre. Selenium Az IDE-nek képesnek kell lennie arra, hogy sikeresen rákattintson erre a REGISZTRÁCIÓ hivatkozásra, és eljusson az alábbi regisztrációs oldalra.
Helymeghatározás DOM (dokumentumobjektum modell) alapján
A Dokumentumobjektum-modell (DOM), leegyszerűsítve, a HTML-elemek felépítésének módja. Selenium Az IDE képes használni a DOM-ot az oldalelemek eléréséhez. Ha ezt a módszert használjuk, a mi Target a mező mindig a „dom=dokumentum…” karakterlánccal kezdődik; a „dom=” előtagot azonban általában eltávolítják, mert Selenium Az IDE képes automatikusan értelmezni bármit, ami a „dokumentum” kulcsszóval kezdődik, a DOM-on belüli elérési útként. Selenium akárhogyan is.
Négy alapvető módja van egy elem megkeresésének a DOM-on keresztül Selenium:
- getElementById
- getElementsByName
- dom:name (csak az elnevezett űrlapon belüli elemekre vonatkozik)
- dom:index
Helymeghatározás DOM alapján – getElementById
Koncentráljunk az első módszerre – a DOM in getElementById metódusára Selenium. A szintaxis a következő lenne:
Szintaxis
document.getElementById("id of the element")
- id of the element = ez az elérendő elem ID attribútumának értéke. Ezt az értéket mindig zárójelben ("") kell tenni.
Step 1) Használja ezt a bemutató oldalt https://demo.guru99.com/test/facebook.html Navigáljon rá, és a Firebug segítségével ellenőrizze a „Maradjon bejelentkezve” jelölőnégyzetet. Vegye figyelembe az azonosítóját.
Láthatjuk, hogy a használandó azonosító a „persist_box”.
Step 2) Nyisd ki Selenium IDE és a Target mezőbe írja be a „document.getElementById(“persist_box”)” kifejezést, és kattintson a Keresés gombra. Selenium Az IDE-nek meg kell találnia a „Maradjon bejelentkezve” jelölőnégyzetet. Bár nem tudja kiemelni a jelölőnégyzet belsejét, Selenium Az IDE továbbra is körülveheti az elemet élénkzöld szegéllyel, ahogy az alább látható.
Helymeghatározás DOM alapján – getElementsByName
A getElementById metódus egyszerre csak egy elemhez férhet hozzá, és ez a megadott azonosítójú elem. A getElementsByName metódus más. Olyan elemek tömbjét gyűjti össze, amelyek az Ön által megadott névvel rendelkeznek. Az egyes elemeket egy 0-val kezdődő index segítségével érheti el.
|
getElementById
|
|
|
getElementsByName
|
Szintaxis
document.getElementsByName(“name“)[index]
- name = az elem neve a 'name' attribútum által meghatározott módon
- index = egy egész szám, amely jelzi, hogy a getElementsByName tömbjében melyik elem kerül felhasználásra.
Step 1) navigáljon Mercury A Tours honlapja és a bejelentkezés a „tutorial” felhasználónévvel és jelszóval. Firefox a Flight Finder képernyőre kell vinnie.
Step 2) A Firebug segítségével ellenőrizze az oldal alsó részén található három választógombot (gazdasági osztály, üzleti osztály és első osztályú választógomb). Figyelje meg, hogy mindegyiknek ugyanaz a neve, ami „servClass”.
Step 3) Először nyissa meg a „Turista osztály” választógombot. A három választógomb közül ez az elem az első, tehát indexe 0. In Selenium IDE, írja be a „document.getElementsByName(“servClass”)[0]” parancsot, és kattintson a Keresés gombra. Selenium Az IDE-nek képesnek kell lennie az Economy Class választógomb helyes azonosítására.
Step 4) Módosítsa az indexszámot 1-re, hogy az Ön Target mostantól document.getElementsByName(“servClass”)[1] lesz. Kattintson a Keresés gombra, majd Selenium Az IDE-nek ki kell tudnia jelölni az „Üzleti osztály” választógombot, az alábbiak szerint.
Helymeghatározás DOM alapján – dom:name
Amint azt korábban említettük, ez a módszer csak akkor alkalmazható, ha az elérni kívánt elem egy elnevezett űrlapon belül található.
Szintaxis
document.forms[“name of the form“].elements[“name of the element“]
- name of the form = az elérni kívánt elemet tartalmazó form tag name attribútuma értéke
- name of the element = az elérni kívánt elem name attribútumának értéke
Step 1) navigáljon Mercury A túrák honlapja https://demo.guru99.com/test/newtours/ és a Firebug segítségével ellenőrizze a Felhasználónév szövegmezőt. Figyelje meg, hogy az „otthon” nevű űrlapon található.
Step 2) In Selenium IDE, írja be a „document.forms[“home”].elements[“userName”] kifejezést, és kattintson a Keresés gombra. Selenium Az IDE-nek sikeresen hozzá kell férnie az elemhez.
Helymeghatározás DOM alapján – dom:index
Ez a módszer akkor is érvényes, ha az elem nem egy elnevezett űrlapon belül van, mert az űrlap indexét használja, nem pedig a nevét.
Szintaxis
document.forms[index of the form].elements[index of the element]
- űrlap indexe = az űrlap indexszáma (0-tól kezdődően) a teljes oldalra vonatkoztatva
- elem indexe = az elem indexszáma (0-tól kezdődően) az azt tartalmazó alakzat egészére vonatkoztatva
A „Telefon” szövegmezőt elérjük Mercury Túrák regisztrációs oldala. Az oldalon lévő űrlapnak nincs név és azonosító attribútuma, így ez jó példa lesz.
Step 1) navigáljon Mercury Tours Regisztrációs oldal, és ellenőrizze a Telefon szövegmezőt. Figyelje meg, hogy az ezt tartalmazó űrlapnak nincs azonosítója és név attribútuma.
Step 2) Írja be a „document.forms[0].elements[3]” kifejezést Selenium Idus Target mezőbe, és kattintson a Keresés gombra. Selenium Az IDE-nek megfelelően hozzá kell tudnia érni a Telefon szövegmezőt.
Step 3) Alternatív megoldásként használhatja az elem nevét az indexe helyett, és ugyanazt az eredményt kapja. Írja be a következőt: „document.forms[0].elements[“phone”] Selenium Idus Target doboz. A Telefon szövegmezőnek továbbra is kiemelten kell lennie.
Helymeghatározás XPath segítségével
Az XPath az XML (Extensible Markup Language) csomópontok megtalálásakor használt nyelv. Mivel a HTML felfogható az XML implementációjaként, használhatjuk is XPath a HTML elemek megtalálásában.
- Előny: Szinte minden elemhez hozzáfér, még azokhoz is, amelyek nem rendelkeznek osztály-, név- vagy id-attribútumokkal.
- Hátrány: Ez a legbonyolultabb módszer az elemek azonosítására a túl sok eltérő szabály és megfontolás miatt.
Szerencsére a Firebug automatikusan generál XPath-ot Selenium lokátorok. A következő példában egy olyan képet fogunk elérni, amelyhez a korábban tárgyalt módszerekkel nem lehet hozzáférni.
Step 1) navigáljon Mercury Nézze meg a narancssárga téglalapot a sárga „Linkek” mezőtől jobbra a Firebug segítségével. Lásd az alábbi képet.
Step 2) Kattintson a jobb gombbal az elem HTML-kódjára, majd válassza az „XPath másolása” lehetőséget.
Step 3) In Selenium IDE, írjon be egy perjelet „/” a Target mezőbe, majd illessze be az előző lépésben kimásolt XPath-ot. A bejegyzés a te Target A mezőnek most két perjel „//”-vel kell kezdődnie.
Step 4) Kattintson a Keresés gombra. Selenium Az IDE-nek képesnek kell lennie arra, hogy kiemelje a narancssárga négyzetet az alábbiak szerint.
Összegzésként
Szintaxis a lokátor használatához
| Módszer | Target Szintaxis | Példa |
|---|---|---|
| Azonosító alapján | id= az_elem_azonosítója | id=email |
| Név szerint | name=az_elem_neve | név=felhasználónév |
| Név szerint szűrők használatával | name=az_elem_neve filter=a_szűrő értéke | name=tripType value=oneway |
| Link szöveggel | link=link_text | link=REGISZTRÁCIÓ |





























