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

Helymeghatározás azonosító alapján

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 azonosító alapján

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.

Helymeghatározás név szerint

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.

Helymeghatározás név szerint

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.

Keresse meg az elemet név szerint a szűrők segítségével

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.

Keresse meg az elemet név szerint a szűrők segítségével

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.

Keresse meg az elemet név szerint a szűrők segítségével

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.

Keresse meg az elemet név szerint a szűrők segítségével

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.

Keresse meg az elemet név szerint a szűrők segítségével

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.

Helymeghatározás linkszöveg alapján

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.

Helymeghatározás linkszöveg alapján

Step 4) Kattintson a Keresés gombra, és vegye észre Selenium Az IDE helyesen tudta kiemelni a REGISZTRÁCIÓ hivatkozást.

Helymeghatározás linkszöveg alapján

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 linkszöveg alapján

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.

Helymeghatározás DOM alapján – getElementById

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

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.

Helymeghatározás DOM alapján – getElementsByName

getElementById

  • Csak egy elemet kap az Ön számára.
  • Ez az elem a getElementById() zárójelében megadott azonosítót viseli.

Helymeghatározás DOM alapján – getElementsByName

getElementsByName

  • Olyan elemek gyűjteményét kapja, amelyeknek a neve azonos.
  • Minden elem egy 0-tól kezdődő számmal van indexelve, akárcsak egy tömb
  • A getElementsByName lenti szintaxisában szögletes zárójelekbe helyezve adja meg, hogy melyik elemet kívánja elérni.

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

Helymeghatározás DOM alapján – getElementsByName

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.

Helymeghatározás DOM alapján – getElementsByName

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

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

Helymeghatározás DOM alapján – dom:name

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

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.

Helymeghatározás DOM alapján – dom:index

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.

Helymeghatározás DOM alapján – dom:index

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

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.

Helymeghatározás XPath segítségével

Step 2) Kattintson a jobb gombbal az elem HTML-kódjára, majd válassza az „XPath másolása” lehetőséget.

Helymeghatározás XPath segítségével

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.

Helymeghatározás XPath segítségével

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.

Helymeghatározás XPath segítségével

Ö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Ó

Foglald össze ezt a bejegyzést a következőképpen: