Keresse meg az elemeket linkszöveg szerint & Részleges link szövege a szelén webdriverben

Tartalomjegyzék:

Anonim

Mi a link szöveg a szelénben?

A szelénben található hivatkozási szöveg a weboldalon található hiperhivatkozások azonosítására szolgál. Meghatározása egy horgonycímke segítségével történik. A hiperhivatkozások weboldalon történő létrehozásához használhatunk horgonycímkét, amelyet a Szöveg hivatkozás követ.

A kritériumnak megfelelő linkek

A linkek a hivatkozásuk szövegének pontos vagy részleges egyezésével érhetők el. Az alábbi példák olyan forgatókönyveket tartalmaznak, ahol több egyezés létezne, és elmagyarázzák, hogy a WebDriver hogyan kezeli őket.

Ebben az oktatóanyagban megtanuljuk a rendelkezésre álló módszereket a hivatkozások megkeresésére és elérésére a Webdriver segítségével. Ezenkívül megvitatjuk a Linkek elérése során felmerülő gyakori problémákat, és tovább megvitatjuk, hogyan lehet megoldani őket.

Itt van, amit megtanulsz-

  • Linkek elérése az Exact Text Match használatával: By.linkText ()
  • Linkek elérése a Partial Text Match: By.partialLinkText () használatával
  • Hogyan szerezhet több linket ugyanazzal a linkszöveggel
  • Kis- és nagybetűk a link szövegéhez
  • Linkek a blokkon kívül és belül

Linkek elérése az Exact Text Match használatával: By.linkText ()

A linkek pontos hivatkozási szövegükkel történő elérése a By.linkText () módszerrel történik . Ha azonban két link van, amelyeknek ugyanaz a szövege van, akkor ez a módszer csak az elsőhöz fog hozzáférni. Vegye figyelembe az alábbi HTML kódot

Amikor megpróbálja futtatni az alábbi WebDriver kódot, akkor hozzáfér az első "kattintson ide" linkre

Kód:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;nyilvános osztály MyClass {public static void main (String [] érvel) {Karakterlánc baseUrl = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver illesztőprogram = new ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("kattintson ide")). kattintson ();System.out.println ("az oldal címe: + driver.getTitle ());driver.quit ();}}

Így működik -

Ennek eredményeként automatikusan a Google-ba kerül.

Linkek elérése a Partial Text Match: By.partialLinkText () használatával

A linkekhez a hivatkozásuk szövegének egy részével férhet hozzá a By.partialLinkText () módszerrel. Ha olyan részleges hivatkozási szöveget ad meg, amely több egyezéssel rendelkezik, akkor csak az első egyezés érhető el. Vegye figyelembe az alábbi HTML kódot.

Amikor végrehajtja az alábbi WebDriver kódot, akkor is átkerül a Google-hoz.

Kód:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;P1 nyilvános osztály {public static void main (String [] érvel) {Karakterlánc baseUrl = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver illesztőprogram = new ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("itt")). kattintson ();System.out.println ("Az oldal címe: + driver.getTitle ());driver.quit ();}}

Hogyan szerezhet több linket ugyanazzal a linkszöveggel

Szóval, hogyan lehet megkerülni a fenti problémát? Abban az esetben, ha több link van ugyanazzal a szövegszöveggel, és az elsőtől eltérő linkekhez szeretnénk hozzáférni, akkor hogyan tovább?

Ilyen esetekben általában különböző lokátorokat használnak, például: By.xpath (), By.cssSelector () vagy By.tagName ().

Leggyakrabban a By.xpath (). Ez a legmegbízhatóbb, de összetettnek és olvashatatlannak is tűnik.

Kis- és nagybetűk a link szövegéhez

A By.linkText () és a By.partialLinkText () paraméterei megkülönböztetik a kis- és nagybetűket, vagyis a nagybetűs írás számít. Például a Mercury Tours honlapján két link található, amelyek az "egis" szöveget tartalmazzák - az egyik a felső menüben található "REGISZTRÁCIÓ" link, a másik pedig a jobb alsó részen található "Regisztráció itt" link. az oldal.

Bár mindkét hivatkozás tartalmazza az "egis" karakterszekvenciát, az egyik a "By.partialLinkText ()" metódus külön fogja elérni ezt a két hivatkozást, a karakterek nagybetűs írásától függően. Lásd az alábbi mintakódot.

Kód

public static void main (String [] érvel) {Karaktersorozat baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver illesztőprogram = new ChromeDriver ();driver.get (baseUrl);String theLinkText = driver.findElement (Írta:.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (Írta:.partialLinkText ("EGIS")).getText ();System.out.println (theLinkText);driver.quit ();}

Linkek a blokkon kívül és belül

A legújabb HTML5 szabvány lehetővé teszi a címkék elhelyezését blokkszintű címkékben és azokon kívül, például

,

vagy

. A "By.linkText ()" és "By.partialLinkText ()" metódusok hozzáférhetnek egy, a blokkszintű elemeken kívül és belül található linkhez. Vegye figyelembe az alábbi HTML kódot.

Az alábbi WebDriver kód mindkét linket a By.partialLinkText () módszerrel éri el.

Kód:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;nyilvános osztály MyClass {public static void main (String [] érvel) {String baseUrl = "http://demo.guru99.com/test/block.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver illesztőprogram = new ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("Belül")). kattintson ();System.out.println (driver.getTitle ());driver.navigate (). back ();driver.findElement (By.partialLinkText ("Kívül")). kattintson ();System.out.println (driver.getTitle ());driver.quit ();}}

A fenti kimenet megerősíti, hogy mindkét link elérése sikeres volt, mert a megfelelő oldalcímeket helyesen kapták le.

Összegzés

  • A linkeket a click () módszerrel lehet elérni.
  • A WebElement számára elérhető lokátorokon kívül a Linkek link-szöveges lokátorokkal is rendelkeznek:
    • By.linkText () - megkeresi a hivatkozásokat a link paraméterként megadott szövegének pontos egyezése alapján.
    • By.partialLinkText () - megtalálja a hivatkozásokat a hivatkozás szövegének részleges szöveges egyezése alapján.
  • Mindkét fenti lokátor megkülönbözteti a kis- és nagybetűket.
  • Ha több egyezés van, akkor a By.linkText () és a By.partialLinkText () csak az első mérkőzést választja ki. Ilyen esetekben, ha több hivatkozás található ugyanazzal a link szöveggel, más lokátorokat használnak az xpath, CSS alapján.
  • A findElements () & By.tagName ("a") metódus megtalálja az oldal összes elemét, amely megfelel a lokátor kritériumainak
  • A hivatkozások a By.linkText () és a By.partialLinkText () segítségével érhetők el, függetlenül attól, hogy blokkszintű elemeken belül vagy kívül vannak-e.