Kas ir saites teksts selēnā?
Saite Teksts Selēns tiek izmantota, lai noteiktu hipersaites uz mājas lapā. To nosaka ar enkura taga palīdzību. Lai izveidotu hipersaites tīmekļa lapā, mēs varam izmantot enkura tagu, kam seko saite Teksts.
Saites, kas atbilst kritērijam
Saitēm var piekļūt, izmantojot precīzu vai daļēju to saites teksta atbilstību. Tālāk sniegtajos piemēros sniegti scenāriji, kad pastāv vairākas atbilstības, un tie izskaidro, kā WebDriver rīkotos ar tiem.
Šajā apmācībā mēs uzzināsim pieejamās metodes, kā atrast un piekļūt saitēm, izmantojot Webdriver. Mēs arī apspriedīsim dažas no biežāk sastopamajām problēmām, saskaroties, piekļūstot saitēm, un tālāk apspriedīsim, kā tās atrisināt.
Lūk, ko jūs uzzināsiet-
- Piekļuve saitēm, izmantojot precīzu teksta atbilstību: By.linkText ()
- Piekļuve saitēm, izmantojot daļēju teksta atbilstību: By.partialLinkText ()
- Kā iegūt vairākas saites ar vienu un to pašu saites tekstu
- Saites teksta reģistrjutīgums
- Saites bloka ārpusē un iekšpusē
Piekļuve saitēm, izmantojot precīzu teksta atbilstību: By.linkText ()
Piekļuve saitēm, izmantojot precīzu saites tekstu, tiek veikta, izmantojot metodi By.linkText () . Tomēr, ja ir divas saites, kurām ir tāds pats saites teksts, šī metode piekļūs tikai pirmajai. Apsveriet tālāk redzamo HTML kodu
Mēģinot palaist zemāk esošo WebDriver kodu, jūs piekļūsit pirmajai saitei "noklikšķiniet šeit"
Kods:
importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.chrome.ChromeDriver;publiskā klase MyClass {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver draiveris = jauns ChromeDriver ();draiveris.get (baseUrl);driver.findElement (By.linkText ("noklikšķiniet šeit")). noklikšķiniet ();System.out.println ("lapas nosaukums ir: + draiveris.getTitle ());vadītājs.iziet ();}}
Lūk, kā tas darbojas-
Tā rezultātā jūs tiksiet automātiski novirzīts uz Google.
Piekļuve saitēm, izmantojot daļēju teksta atbilstību: By.partialLinkText ()
Piekļuve saitēm, izmantojot daļu no to saites teksta, tiek veikta, izmantojot metodi By.partialLinkText () . Ja norādāt daļēju saites tekstu, kurā ir vairākas atbilstības, tiks piekļūta tikai pirmajai atbilstībai. Apsveriet tālāk redzamo HTML kodu.
Veicot zemāk redzamo WebDriver kodu, jūs tiksiet novirzīts uz Google.
Kods:
importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.chrome.ChromeDriver;publiskā klase 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");WebDriver draiveris = jauns ChromeDriver ();draiveris.get (baseUrl);driver.findElement (By.partialLinkText ("šeit")). noklikšķiniet ();System.out.println ("Lapas nosaukums ir: + draiveris.getTitle ());vadītājs.iziet ();}}
Kā iegūt vairākas saites ar vienu un to pašu saites tekstu
Tātad, kā apiet iepriekš minēto problēmu? Gadījumos, kad ir vairākas saites ar vienu un to pašu saites tekstu un mēs vēlamies piekļūt citām saitēm, nevis pirmajai, kā mēs to darīsim?
Šādos gadījumos parasti tiek izmantoti dažādi lokatori, proti ... By.xpath (), By.cssSelector () vai By.tagName ().
Visbiežāk tiek izmantots By.xpath (). Tas ir visuzticamākais, bet izskatās sarežģīts un arī neizlasāms.
Saites teksta reģistrjutīgums
By.linkText () un By.partialLinkText () parametri ir reģistrjutīgi, tas nozīmē, ka lielajiem burtiem ir nozīme. Piemēram, Mercury Tours mājas lapā ir divas saites, kurās ir teksts "egis" - viena ir augšējā izvēlnē atrodamā saite "REĢISTRĒT", bet otra - apakšējā labajā pusē esošā saite "Reģistrēties šeit". lapas.
Lai gan abās saitēs ir rakstzīmju secība "egis", viena no tām ir metode "By.partialLinkText ()", šīm abām saitēm piekļūstot atsevišķi atkarībā no rakstzīmju lielo burtu lietojuma. Skatiet koda paraugu zemāk.
Kods
public static void main (String [] args) {Virknes bāzeUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver draiveris = jauns ChromeDriver ();draiveris.get (baseUrl);String theLinkText = driver.findElement (Autors.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (Autors.partialLinkText ("EGIS").getText ();System.out.println (theLinkText);vadītājs.iziet ();}