Lenketekst og delvis lenketekst i Selenium
โก Smart oppsummering
Lenketekst og delvis lenketekst i Selenium Finn hyperlenker pรฅ en nettside gjennom ankerteksten deres. By.linkText()-metoden matcher den nรธyaktige teksten, mens By.partialLinkText() matcher en del, og begge locatorene skiller mellom store og smรฅ bokstaver og returnerer det fรธrste treffet.

Hva er lenketekst i Selenium?
A Link tekst inn Selenium brukes til รฅ identifisere hyperkoblingene pรฅ en nettside. Det bestemmes ved hjelp av en ankerbrikke. For รฅ lage hyperkoblingene pรฅ en nettside kan vi bruke en ankertag etterfulgt av lenken Tekst.
Lenker som samsvarer med et kriterium
Lenker kan nรฅs ved รฅ bruke en nรธyaktig eller delvis samsvar med lenketeksten. Eksemplene nedenfor gir scenarier der flere treff vil eksistere og forklarer hvordan WebDriver vil hรฅndtere dem.
I denne opplรฆringen lรฆrer vi de tilgjengelige metodene for รฅ finne og fรฅ tilgang til koblingene ved hjelp av Webdriver. Vi vil ogsรฅ diskutere noen av de vanlige problemene du mรธter nรฅr du fรฅr tilgang til lenker, og vil videre diskutere hvordan de kan lรธses.
Fullfรธr lenketekst inn Selenium โ By.linkText()
Tilgang til lenker med deres eksakte lenketekst gjรธres gjennom By.linkText()-metoden. Men hvis det er to lenker som har samme lenketekst, vil denne metoden bare fรฅ tilgang til den fรธrste. Tenk pรฅ HTML-koden nedenfor
Nรฅr du prรธver รฅ kjรธre WebDriver-koden nedenfor, fรฅr du tilgang til den fรธrste "klikk her"-lenken
Code:
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(); } }
Her er hvordan det fungerer-
Som et resultat blir du automatisk tatt med til Google.
Fullfรธr delvis lenketekst inn Selenium โ By.partialLinkText()
Tilgang til lenker ved รฅ bruke en del av lenketeksten deres gjรธres ved รฅ bruke By.partialLinkText() metode. Hvis du spesifiserer en delvis lenketekst som har flere treff, vil bare det fรธrste treffet fรฅ tilgang. Tenk pรฅ HTML-koden nedenfor.
Nรฅr du kjรธrer WebDriver-koden nedenfor, vil du fortsatt bli tatt til Google.
Code:
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(); } }
Hvordan fรฅ flere lenker med samme lenketekst
Sรฅ hvordan omgรฅ problemet ovenfor? I tilfeller der det er flere lenker med samme lenketekst, og vi รธnsker รฅ fรฅ tilgang til andre lenker enn den fรธrste, hvordan gรฅr vi frem?
I slike tilfeller, vanligvis, forskjellige locatorer, nemlig... By.xpath(), By.cssSelector() eller By.tagName() brukes.
Mest brukt er By.xpath(). Det er den mest pรฅlitelige, men den ser ogsรฅ kompleks og ikke-lesbar ut.
Skilt mellom store og smรฅ bokstaver for lenketekst
Parametrene for By.linkText() og By.partialLinkText() begge skiller mellom store og smรฅ bokstaver, noe som betyr at bruk av store og smรฅ bokstaver er viktige. For eksempel i Mercury Tours' hjemmeside, det er to lenker som inneholder teksten "egis" - den ene er "REGISTER"-lenken i toppmenyen, og den andre er "Registrer deg her"-lenken nederst til hรธyre pรฅ siden.
Selv om begge lenkene inneholder tegnsekvensen ยซegisยป, vil metoden ยซBy.partialLinkText()ยป fรฅ tilgang til disse to lenkene separat, avhengig av store bokstaver. Se eksempelkoden nedenfor.
Code
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(); }
Linker utenfor og inne i en blokk
Den nyeste HTML5-standarden gjรธr at taggene kan plasseres innenfor og utenfor blokknivรฅtagger som , , eller . Metodene "By.linkText()" og "By.partialLinkText()" kan fรฅ tilgang til en kobling som ligger utenfor og inne i disse blokknivรฅelementene. Tenk pรฅ HTML-koden nedenfor.
WebDriver-koden nedenfor fรฅr tilgang til begge disse koblingene ved hjelp av By.partialLinkText()-metoden.
Code:
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(); } }
Utdataene ovenfor bekrefter at begge koblingene ble รฅpnet fordi deres respektive sidetitler ble hentet pรฅ riktig mรฅte.


.png)
.png)

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

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