Kaj je besedilo povezav v selenu?
Link Besedilo v Selen se uporablja za identifikacijo hiperpovezave na spletni strani. Določi se s pomočjo sidrne oznake. Za ustvarjanje hiperpovezav na spletni strani lahko uporabimo sidrno oznako, ki ji sledi povezava Besedilo.
Povezave, ki se ujemajo z merilom
Do povezav je mogoče dostopati z natančnim ali delnim ujemanjem besedila njihove povezave. Spodnji primeri ponujajo scenarije, v katerih bi obstajalo več ujemanj, in pojasnjujejo, kako bi se WebDriver ukvarjal z njimi.
V tej vadnici bomo spoznali razpoložljive metode za iskanje in dostop do povezav s pomočjo Webdriverja. Razpravljali bomo tudi o nekaterih pogostih težavah, s katerimi se srečujemo pri dostopu do Povezav, in o tem, kako jih rešiti.
Tukaj se boste naučili-
- Dostop do povezav z natančnim ujemanjem besedila: By.linkText ()
- Dostop do povezav z uporabo delnega ujemanja besedila: By.partialLinkText ()
- Kako dobiti več povezav z istim besedilom povezave
- Razlikovanje velikih in malih črk za besedilo povezave
- Povezave zunaj in znotraj bloka
Dostop do povezav z natančnim ujemanjem besedila: By.linkText ()
Dostopanje do povezav z natančnim besedilom povezav poteka prek metode By.linkText () . Če pa obstajata dve povezavi z enakim besedilom povezave, bo ta metoda dostopala samo do prve. Upoštevajte spodnjo kodo HTML
Ko poskusite zagnati spodnjo kodo WebDriver, boste odprli prvo povezavo "kliknite tukaj"
Koda:
uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;javni razred MyClass {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("kliknite tukaj")). click ();System.out.println ("naslov strani je: + driver.getTitle ());driver.quit ();}}
Tukaj je, kako to deluje -
Posledično boste samodejno preusmerjeni v Google.
Dostop do povezav z uporabo delnega ujemanja besedila: By.partialLinkText ()
Dostopanje do povezav z delom njihovega besedila povezav poteka z metodo By.partialLinkText () . Če določite delno besedilo povezave, ki ima več zadetkov, bo dostopno le do prvega ujemanja. Upoštevajte spodnjo kodo HTML.
Ko zaženete spodnjo kodo WebDriver, boste še vedno preusmerjeni v Google.
Koda:
uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;javni razred P1 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("tukaj")). click ();System.out.println ("Naslov strani je: + driver.getTitle ());driver.quit ();}}
Kako dobiti več povezav z istim besedilom povezave
Torej, kako rešiti zgornjo težavo? Če gre za več povezav z istim besedilom povezave in želimo dostopati do povezav, ki niso prva, kako to storiti?
V takih primerih se običajno uporabljajo različni lokatorji, in sicer ... By.xpath (), By.cssSelector () ali By.tagName ().
Najpogosteje se uporablja By.xpath (). Je najbolj zanesljiv, vendar je videti tudi zapleten in neberljiv.
Razlikovanje velikih in malih črk za besedilo povezave
Parametra za By.linkText () in By.partialLinkText () sta oba občutljiva na velike in male črke, kar pomeni, da je uporaba velikih začetnic pomembna. Na domači strani Mercury Tours sta na primer dve povezavi, ki vsebujeta besedilo "egis" - ena je povezava "REGISTER" v zgornjem meniju, druga pa povezava "Registriraj se tukaj" v spodnjem desnem delu strani.
Čeprav obe povezavi vsebujeta zaporedje znakov "egis", je metoda metoda "By.partialLinkText ()" do teh dveh povezav ločena, odvisno od velikih začetnic. Glejte spodnjo vzorčno kodo.
Koda
public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();driver.get (baseUrl);String theLinkText = driver.findElement (avtor.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (avtor.partialLinkText ("EGIS")).getText ();System.out.println (theLinkText);driver.quit ();}