Leidke elemendid lingi teksti järgi & Osalise lingi tekst seleeni veebidraiveris

Lang L: none (table-of-contents):

Anonim

Mis on lingi tekst seleenis?

Link Tekst Seleen identifitseerimiseks kasutatakse hüperlinke veebilehe. See määratakse kindlaks ankrumärgi abil. Veebilehel hüperlingi loomiseks võime kasutada ankrumärgendit, millele järgneb link Tekst.

Kriteeriumile vastavad lingid

Lingidele pääseb juurde nende lingiteksti täpse või osalise vaste abil. Allpool toodud näited pakuvad stsenaariume, kus oleks mitu vastet, ja selgitavad, kuidas WebDriver nendega hakkama saab.

Selles õpetuses õpime saadaolevaid meetodeid linkide leidmiseks ja neile juurdepääsu saamiseks Webdriveri abil. Samuti arutame linkide kasutamisel mõningaid levinumaid probleeme ja arutame nende lahendamist.

Siit saate teada -

  • Linkidele juurdepääs, kasutades täpset tekstivastet: By.linkText ()
  • Linkidele juurdepääs osalise tekstivaste abil: By.partialLinkText ()
  • Kuidas saada mitu linki sama lingitekstiga
  • Suur- ja väiketäht lingi teksti puhul
  • Lingid ploki välisküljel ja sees

Linkidele juurdepääs, kasutades täpset tekstivastet: By.linkText ()

Lingidele juurdepääs nende täpse lingiteksti abil toimub By.linkText () meetodi kaudu . Kui on aga kaks linki, millel on sama lingitekst, pääseb see meetod juurde ainult esimesele. Mõelge allpool olevale HTML-koodile

Kui proovite allolevat WebDriveri koodi käivitada, pääsete juurde esimesele "klõpsake siin" lingile

Kood:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;avalik klass MyClass {public staatiline void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/link.html";System.setProperty ("veebidraiver.chrome.driver", "G: \\ chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();draiver.get (baseUrl);draiver.findElement (By.linkText ("klõpsake siin")). klõpsake ();System.out.println ("lehe pealkiri on: + draiver.getTitle ());juht.ulge ();}}

See toimib järgmiselt.

Selle tulemusena suunatakse teid automaatselt Google'i.

Linkidele juurdepääs osalise tekstivaste abil: By.partialLinkText ()

Lingidele juurde pääsemine, kasutades nende lingiteksti osa, toimub By.partialLinkText () meetodi abil. Kui määrate osalise lingiteksti, millel on mitu vastet, pääseb juurde ainult esimesele vastele. Mõelge allpool olevale HTML-koodile.

Alloleva WebDriveri koodi käivitamisel suunatakse teid ikkagi Google'i.

Kood:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;avalik klass P1 {public staatiline void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("veebidraiver.chrome.driver", "G: \\ chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();draiver.get (baseUrl);driver.findElement (By.partialLinkText ("siin")). klõpsake ();System.out.println ("Lehe pealkiri on: + draiver.getTitle ());juht.ulge ();}}

Kuidas saada mitu linki sama lingitekstiga

Niisiis, kuidas ülaltoodud probleemist mööda saada? Kui meil on sama lingitekstiga mitu linki ja me soovime juurde pääseda lingidele, mis pole esimesed, siis kuidas me sellega edasi tegeleme?

Sellistel juhtudel kasutatakse tavaliselt erinevaid lokaatoreid ... By.xpath (), By.cssSelector () või By.tagName ().

Kõige sagedamini kasutatakse By.xpath (). See on kõige usaldusväärsem, kuid tundub keeruline ja loetamatu ka.

Suur- ja väiketäht lingi teksti puhul

By.linkText () ja By.partialLinkText () parameetrid on mõlemad tõstutundlikud, mis tähendab, et suurtähed on olulised. Näiteks Mercury Toursi kodulehel on kaks linki, mis sisaldavad teksti "egis" - üks on ülemisest menüüst leitud link "REGISTRI" ja teine ​​on paremas alanurgas olev link "Registreeru siin" lehe.

Kuigi mõlemad lingid sisaldavad tähemärkide järjestust "egis", on üks meetod "By.partialLinkText ()" juurdepääs neile kahele lingile eraldi, sõltuvalt tähtede suurtähest. Vaadake allpool näidiskoodi.

Kood

public staatiline void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("veebidraiver.chrome.driver", "G: \\ chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();draiver.get (baseUrl);String theLinkText = driver.findElement (Autor.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (Autor.partialLinkText ("EGIS")).getText ();System.out.println (theLinkText);juht.ulge ();}

Lingid ploki välisküljel ja sees

Uusim HTML5 standard võimaldab silte paigutada plokitaseme siltide sisse ja välja, näiteks

,

või

. Meetodid "By.linkText ()" ja "By.partialLinkText ()" pääsevad juurde lingile, mis asub väljaspool neid plokitaseme elemente ja nende sees. Mõelge allpool olevale HTML-koodile.

Allpool olev WebDriveri kood pääseb mõlemale lingile juurde meetodi By.partialLinkText () abil.

Kood:

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;avalik klass MyClass {public staatiline void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/block.html";System.setProperty ("veebidraiver.chrome.driver", "G: \\ chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();draiver.get (baseUrl);driver.findElement (By.partialLinkText ("Sees")). klõpsake ();System.out.println (draiver.getTitle ());juht.navigeeri (). tagasi ();driver.findElement (By.partialLinkText ("Väljas")). klõpsake ();System.out.println (draiver.getTitle ());juht.ulge ();}}

Ülaltoodud väljund kinnitab, et mõlemale lingile pääsesid edukalt juurde, kuna nende lehe pealkirjad leiti õigesti.

Kokkuvõte

  • Linkidele pääseb juurde meetodiga click ().
  • Lisaks mis tahes WebElementi jaoks saadaval olevatele lokaatoritele on linkidel ka lingitekstil põhinevad lokaatorid:
    • By.linkText () - otsib lingid parameetrina toodud lingi teksti täpse vaste põhjal.
    • By.partialLinkText () - otsib lingid lingi teksti osalise tekstivaste põhjal.
  • Mõlemad ülaltoodud lokaatorid on tõstutundlikud.
  • Kui vasteid on mitu, valivad By.linkText () ja By.partialLinkText () ainult esimese vaste. Sellistel juhtudel, kui on mitu sama lingitekstiga linki, kasutatakse teisi xpath, CSS-i põhiseid lokaatoreid.
  • meetod findElements () & By.tagName ("a") leiab lehelt kõik elemendid, mis vastavad lokaatori kriteeriumidele
  • Lingidele pääseb juurde By.linkText () ja By.partialLinkText () kaudu, olenemata sellest, kas need on plokitaseme elementide sees või väljaspool.