Linkszöveg és részleges hivatkozás szövege be Selenium
Mit tartalmaz a hivatkozás szövege Selenium?
A Link szöveg be Selenium a weboldalon található hiperhivatkozások azonosítására szolgál. Meghatározása horgonycímke segítségével történik. A hiperhivatkozások létrehozásához egy weboldalon használhatunk egy horgonycímkét, amelyet a szöveg hivatkozás követ.
Kritériumnak megfelelő linkek
A hivatkozások a linkszöveg pontos vagy részleges egyezésével érhetők el. Az alábbi példák olyan forgatókönyveket mutatnak be, ahol több egyezés is létezne, és elmagyarázzák, hogyan kezelné őket a WebDriver.
Ebben az oktatóanyagban megismerjük a hivatkozások megtalálásának és elérésének elérhető módszereit a Webdriver segítségével. Ezenkívül megvitatunk néhány gyakori problémát, amelyekkel a hivatkozások elérése során szembesülünk, és tovább tárgyaljuk a megoldásuk módját.
Töltse ki a hivatkozás szövegét Selenium – By.linkText()
A hivatkozások elérése a pontos linkszöveg használatával a By.linkText() metóduson keresztül történik. Ha azonban van két hivatkozás, amelyeknek ugyanaz a hivatkozás szövege, akkor ez a módszer csak az elsőhöz fér hozzá. Vegye figyelembe az alábbi HTML-kódot
Amikor megpróbálja futtatni az alábbi WebDriver kódot, az első „kattintson ide” hivatkozásra fog hozzáférni
Kód:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class MyClass {
public static void main(String[] args) {
String baseUrl = "https://demo.guru99.com/test/link.html";
System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get(baseUrl);
driver.findElement(By.linkText("click here")).click();
System.out.println("title of page is: " + driver.getTitle());
driver.quit();
}
}
Íme, hogyan működik -
Ennek eredményeként automatikusan a Google-hoz kerül.
Részleges hivatkozás szövegének kitöltése Selenium – By.partialLinkText()
A hivatkozásokhoz a hivatkozásszöveg egy részével való hozzáférés a következő használatával történik By.partialLinkText() módszer. Ha olyan részleges linkszöveget ad meg, amely több egyezést tartalmaz, akkor csak az első egyezés lesz elérhető. Vegye figyelembe az alábbi HTML-kódot.
Amikor végrehajtja az alábbi WebDriver kódot, továbbra is a Google oldalára kerül.
Kód:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class P1 {
public static void main(String[] args) {
String baseUrl = "https://demo.guru99.com/test/accessing-link.html";
System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get(baseUrl);
driver.findElement(By.partialLinkText("here")).click();
System.out.println("Title of page is: " + driver.getTitle());
driver.quit();
}
}
Hogyan szerezhet be több hivatkozást ugyanazzal a linkszöveggel
Tehát hogyan lehet megkerülni a fenti problémát? Azokban az esetekben, amikor több link is ugyanazzal a linkszöveggel rendelkezik, és az elsőtől eltérő hivatkozásokat szeretnénk elérni, hogyan tegyünk?
Ilyen esetekben általában különböző lokátorokat használnak, nevezetesen… By.xpath(), By.cssSelector() vagy By.tagName()-t.
A leggyakrabban használt a By.xpath(). Ez a legmegbízhatóbb, de bonyolultnak és olvashatatlannak is tűnik.
A hivatkozásszöveg kis- és nagybetűk megkülönböztetése
A paraméterek a By.linkText() és a By.partialLinkText() mindkettő megkülönbözteti a kis- és nagybetűket, ami azt jelenti, hogy a nagybetűk használata számít. Például be Mercury A 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Ó”, a másik pedig az oldal jobb alsó sarkában található „Regisztráció itt” link.
Bár mindkét hivatkozás tartalmazza az „egis” karaktersorozatot, az egyik a „By.partialLinkText()” metódus külön-külön éri el ezt a két hivatkozást a karakterek nagybetűs írásmódjától függően. Lásd az alábbi mintakódot.
Kód
public static void main(String[] args) {
String baseUrl = "https://demo.guru99.com/test/newtours/";
System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get(baseUrl);
String theLinkText = driver.findElement(By
.partialLinkText("egis"))
.getText();
System.out.println(theLinkText);
theLinkText = driver.findElement(By
.partialLinkText("EGIS"))
.getText();
System.out.println(theLinkText);
driver.quit();
}
Hivatkozások egy 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éken belül és kívül is, mint például a , , vagy . A „By.linkText()” és „By.partialLinkText()” metódusok hozzáférhetnek egy hivatkozáshoz, amely ezeken a blokkszintű elemeken kívül és belül található. Vegye figyelembe az alábbi HTML-kódot.
Az alábbi WebDriver kód mindkét hivatkozást a By.partialLinkText() metódussal éri el.
Kód:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class MyClass {
public static void main(String[] args) {
String baseUrl = "https://demo.guru99.com/test/block.html";
System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get(baseUrl);
driver.findElement(By.partialLinkText("Inside")).click();
System.out.println(driver.getTitle());
driver.navigate().back();
driver.findElement(By.partialLinkText("Outside")).click();
System.out.println(driver.getTitle());
driver.quit();
}
}
A fenti kimenet megerősíti, hogy mindkét hivatkozáshoz sikeresen hozzáfértek, mert a megfelelő oldalcímüket megfelelően lekérték.
Összegzésként
- A hivatkozások elérése a click() metódussal történik.
- A bármely WebElement számára elérhető helymeghatározókon kívül a hivatkozásoknak is vannak linkszöveg alapú helymeghatározói:
- By.linkText() – megkeresi a hivatkozásokat a hivatkozás paraméterként megadott szövegének pontos egyezése alapján.
- By.partialLinkText() – megkeresi a hivatkozásokat a hivatkozás szövegének részleges szövegegyezése alapján.
- Mindkét fenti lokátor megkülönbözteti a kis- és nagybetűket.
- Ha több egyezés is van, a By.linkText() és a By.partialLinkText() csak az első egyezést választja ki. Azokban az esetekben, amikor több hivatkozás is található ugyanazzal a hivatkozás szövegével, más xpath, CSS-alapú lokátorokat használnak.
- A findElements() & By.tagName(“a”) metódus megkeresi az oldalon lévő összes olyan elemet, amely megfelel a helymeghatározási feltételeknek
- 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.


.png)
.png)

.png)
.png)
.png)
.png)
.png)

.png)
.png)
.png)
.png)
.png)