Ce este textul legăturii în seleniu?
Un text de legătură în seleniu este utilizat pentru a identifica hyperlinkurile de pe o pagină web. Se determină cu ajutorul unei etichete de ancorare. Pentru crearea hyperlinkurilor pe o pagină web, putem utiliza o etichetă de ancorare urmată de linkul Text.
Link-uri care corespund unui criteriu
Link-urile pot fi accesate utilizând o potrivire exactă sau parțială a textului linkului lor. Exemplele de mai jos oferă scenarii în care ar exista mai multe potriviri și ar explica modul în care WebDriver le-ar face față.
În acest tutorial, vom învăța metodele disponibile pentru a găsi și accesa link-urile folosind Webdriver. De asemenea, vom discuta despre unele dintre problemele obișnuite cu care se confruntă în timpul accesării Link-urilor și vom discuta în continuare despre cum să le rezolvăm.
Iată ce veți învăța-
- Accesarea linkurilor folosind potrivirea exactă a textului: By.linkText ()
- Accesarea linkurilor folosind Partial Text Match: By.partialLinkText ()
- Cum să obțineți mai multe linkuri cu același text de link
- Sensibilitate la majuscule și minuscule pentru textul linkului
- Linkuri în exterior și în interiorul unui bloc
Accesarea linkurilor folosind potrivirea exactă a textului: By.linkText ()
Accesarea link-urilor folosind textul exact al acestora se face prin metoda By.linkText () . Cu toate acestea, dacă există două linkuri care au același text de legătură, această metodă va accesa doar prima. Luați în considerare codul HTML de mai jos
Când încercați să rulați codul WebDriver de mai jos, veți accesa primul link „faceți clic aici”
Cod:
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;clasă publică MyClass {public static main main (String [] args) {String baseUrl = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = nou ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("click aici")). click ();System.out.println ("titlul paginii este: + driver.getTitle ());driver.quit ();}}
Iată cum funcționează-
Drept urmare, veți fi condus automat la Google.
Accesarea linkurilor folosind Partial Text Match: By.partialLinkText ()
Accesarea linkurilor folosind o parte din textul link-ului lor se face folosind metoda By.partialLinkText () . Dacă specificați un text de legătură parțială care are mai multe potriviri, va fi accesat doar primul meci. Luați în considerare codul HTML de mai jos.
Când executați codul WebDriver de mai jos, veți fi dus în continuare la Google.
Cod:
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;clasa publica P1 {public static main main (String [] args) {String baseUrl = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = nou ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("aici")). faceți clic pe ();System.out.println ("Titlul paginii este: + driver.getTitle ());driver.quit ();}}
Cum să obțineți mai multe linkuri cu același text de link
Deci, cum să rezolve problema de mai sus? În cazurile în care există mai multe link-uri cu același text al link-ului și dorim să accesăm link-urile altele decât primul, cum o facem?
În astfel de cazuri, în general, se utilizează diferite localizatoare și anume ... By.xpath (), By.cssSelector () sau By.tagName ().
Cel mai frecvent utilizat este By.xpath (). Este cel mai fiabil, dar arată și complex și nu poate fi citit.
Sensibilitate la majuscule și minuscule pentru textul linkului
Parametrii pentru By.linkText () și By.partialLinkText () sunt ambii sensibili la majuscule, ceea ce înseamnă că majuscula contează. De exemplu, în pagina de pornire a lui Mercury Tours, există două linkuri care conțin textul „egis” - unul este linkul „REGISTRARE” din meniul de sus, iar celălalt este linkul „Înregistrați-vă aici” aflat în partea din dreapta jos. a paginii.
Deși ambele linkuri conțin secvența de caractere „egis”, una este metoda „By.partialLinkText ()”, va accesa aceste două linkuri separat, în funcție de scrierea cu majusculă a caracterelor. Consultați exemplul de cod de mai jos.
Cod
public static main main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = nou 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 ();}