Etsi elementit linkkitekstin mukaan & Osittainen linkkiteksti Selenium Webdriverissa

Sisällysluettelo:

Anonim

Mikä on linkkiteksti seleenissä?

Linkkitekstin Seleeni käytetään tunnistamaan hyperlinkkejä Web-sivulla. Se määritetään ankkurilipun avulla. Hyperlinkkien luomiseen verkkosivulle voimme käyttää ankkuritunnistetta, jota seuraa linkki Teksti.

Ehtoa vastaavat linkit

Linkkejä voi käyttää tarkalla tai osittaisella linkkitekstillä. Alla olevat esimerkit tarjoavat skenaarioita, joissa olisi useita otteluita, ja selittäisivät, kuinka WebDriver käsittelisi niitä.

Tässä opetusohjelmassa opimme käytettävissä olevat menetelmät linkkien löytämiseksi ja käyttämiseksi Webdriverilla. Keskustelemme myös joistakin yleisistä ongelmista linkkien käytön aikana ja keskustelemme edelleen niiden ratkaisemisesta.

Tässä on mitä opit-

  • Linkkien käyttö tarkan tekstihaun avulla: By.linkText ()
  • Linkkien käyttäminen osittaisen tekstihaun avulla: By.partialLinkText ()
  • Kuinka saada useita linkkejä samalla linkkitekstillä
  • Linkkitekstin kirjainkoko
  • Linkit korttelin ulkopuolelle ja sisälle

Linkkien käyttö tarkan tekstihaun avulla: By.linkText ()

Linkkien käyttö niiden tarkan linkkitekstin avulla tapahtuu By.linkText () -menetelmän avulla . Jos linkkejä on kuitenkin kaksi, joilla on sama linkkiteksti, tämä menetelmä käyttää vain ensimmäistä linkkiä. Harkitse alla olevaa HTML-koodia

Kun yrität suorittaa alla olevan WebDriver-koodin, pääset ensimmäiseen "napsauta tätä" -linkkiin

Koodi:

tuo org.openqa.selenium.By;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.chrome.ChromeDriver;julkinen luokka MyClass {public staattinen void main (String [] argumentoi) {Merkkijono baseUrl = "http://demo.guru99.com/test/link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-ohjain = uusi ChromeDriver ();driver.get (baseUrl);driver.findElement (By.linkText ("napsauta tätä").) napsauta ();System.out.println ("sivun otsikko on: + ohjain.getTitle ());kuljettaja. lopeta ();}}

Näin se toimii-

Tämän seurauksena sinut ohjataan automaattisesti Googleen.

Linkkien käyttäminen osittaisen tekstihaun avulla: By.partialLinkText ()

Linkkien käyttö käyttämällä osaa niiden linkkitekstistä tapahtuu By.partialLinkText () -menetelmällä. Jos määrität osittaisen linkkitekstin, jossa on useita vastaavuuksia, vain ensimmäistä osumaa käytetään. Harkitse alla olevaa HTML-koodia.

Kun suoritat alla olevan WebDriver-koodin, sinut viedään edelleen Googleen.

Koodi:

tuo org.openqa.selenium.By;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.chrome.ChromeDriver;julkinen luokka P1 {public staattinen void main (String [] argumentoi) {Merkkijono baseUrl = "http://demo.guru99.com/test/accessing-link.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-ohjain = uusi ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("täällä")). napsauta ();System.out.println ("Sivun otsikko on: + driver.getTitle ());kuljettaja. lopeta ();}}

Kuinka saada useita linkkejä samalla linkkitekstillä

Joten, miten kiertää yllä oleva ongelma? Tapauksissa, joissa on useita linkkejä samalla linkkitekstillä ja haluamme käyttää muita linkkejä kuin ensimmäinen, miten voimme jatkaa sitä?

Tällaisissa tapauksissa käytetään yleensä eri paikannimia eli… By.xpath (), By.cssSelector () tai By.tagName ().

Yleisimmin käytetty on By.xpath (). Se on luotettavin, mutta se näyttää myös monimutkaiselta ja lukukelvottomalta.

Linkkitekstin kirjainkoko

Parametrit By.linkText () ja By.partialLinkText () ovat molemmat isot ja pienet kirjaimet, eli arvo asioissa. Esimerkiksi Mercury Toursin kotisivulla on kaksi linkkiä, jotka sisältävät tekstin "egis" - yksi on ylävalikosta löytyvä "REKISTERÖIDY" -linkki ja toinen on oikeassa alakulmassa oleva "Rekisteröi täällä" -linkki. sivun.

Vaikka molemmat linkit sisältävät merkkisekvenssin "egis", yksi on "By.partialLinkText ()" -menetelmä, joka käyttää näitä kahta linkkiä erikseen merkkien isojen kirjainten mukaan. Katso alla oleva esimerkkikoodi.

Koodi

public staattinen void main (String [] argumentoi) {Merkkijono baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-ohjain = uusi ChromeDriver ();driver.get (baseUrl);Merkkijono theLinkText = driver.findElement (By.partialLinkText ("egis")).getText ();System.out.println (theLinkText);theLinkText = driver.findElement (Tekijä.partialLinkText ("EGIS")).getText ();System.out.println (theLinkText);kuljettaja. lopeta ();}

Linkit korttelin ulkopuolelle ja sisälle

Uusin HTML5-standardi sallii tunnisteiden sijoittamisen lohkotason tunnisteiden, kuten

,

tai

, sisälle ja ulkopuolelle. "By.linkText ()" - ja "By.partialLinkText ()" -menetelmät voivat käyttää linkkiä, joka sijaitsee näiden lohkotason elementtien ulkopuolella ja sisällä. Harkitse alla olevaa HTML-koodia.

Alla oleva WebDriver-koodi käyttää molempia linkkejä By.partialLinkText () -menetelmällä.

Koodi:

tuo org.openqa.selenium.By;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.chrome.ChromeDriver;julkinen luokka MyClass {public staattinen void main (String [] argumentoi) {Merkkijono baseUrl = "http://demo.guru99.com/test/block.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-ohjain = uusi ChromeDriver ();driver.get (baseUrl);driver.findElement (By.partialLinkText ("Sisällä")). napsauta ();System.out.println (ohjain.getTitle ());kuljettaja.navigate (). back ();driver.findElement (By.partialLinkText ("Ulkopuolella")). napsauta ();System.out.println (ohjain.getTitle ());kuljettaja. lopeta ();}}

Yllä oleva lähtö vahvistaa, että molempiin linkkeihin oli päästy onnistuneesti, koska niiden sivunimikkeet haettiin oikein.

Yhteenveto

  • Linkkejä käytetään napsautus () -menetelmällä.
  • Kaikille WebElementille saatavilla olevien paikanninten lisäksi Linkeillä on myös linkkitekstipohjaiset paikannuslaitteet:
    • By.linkText () - etsii linkit parametrina annetun linkin tekstin tarkan vastaavuuden perusteella.
    • By.partialLinkText () - etsii linkit linkin tekstin osittaisen tekstihaun perusteella.
  • Molemmat yllä olevat paikannuslaitteet erottavat kirjainkoon.
  • Jos vastaavuuksia on useita, By.linkText () ja By.partialLinkText () valitsevat vain ensimmäisen ottelun. Sellaisissa tapauksissa, joissa on useita linkkejä samalla linkkitekstillä, käytetään muita xpath-, CSS-pohjaisia ​​paikannimia.
  • findElements () & By.tagName ("a") -menetelmä etsii kaikki sivun elementit, jotka vastaavat paikannuskriteereitä
  • Linkkeihin pääsee By.linkText () - ja By.partialLinkText () -toiminnoilla riippumatta siitä, ovatko ne lohkotason elementtien sisällä vai ulkopuolella.