Linkkiteksti ja osittainen linkkiteksti kohdassa Selenium
⚡ Älykäs yhteenveto
Linkkiteksti ja osittainen linkkiteksti kohdassa Selenium paikantaa hyperlinkkejä verkkosivulta niiden ankkuritekstin perusteella. By.linkText()-metodi löytää täsmälleen oikean tekstin, kun taas By.partialLinkText()-metodi löytää osan tekstistä. Molemmat paikannusmetodit ovat kirjainkokoherkkiä ja palauttavat ensimmäisen osuman.
Mitä linkkiteksti sisältää Selenium?
A Linkki teksti sisään Selenium käytetään tunnistamaan web-sivun hyperlinkit. Se määritetään ankkuritunnisteen avulla. Hyperlinkkien luomiseen web-sivulle voimme käyttää ankkuritunnistetta, jota seuraa linkki Teksti.
Kriteeriä vastaavat linkit
Linkkejä voidaan käyttää käyttämällä niiden linkkitekstiä täsmällisesti tai osittain. Alla olevat esimerkit tarjoavat skenaarioita, joissa olisi useita osumia, ja selittävät, kuinka WebDriver käsittelee niitä.
Tässä opetusohjelmassa opimme käytettävissä olevat menetelmät löytää ja käyttää linkkejä Webdriverin avulla. Keskustelemme myös joistakin yleisistä ongelmista, joita kohtaat linkkien käytön aikana, ja keskustelemme edelleen niiden ratkaisemisesta.
Täydellinen linkin teksti sisään Selenium – By.linkText()
Linkkien käyttäminen niiden tarkalla linkkitekstillä tapahtuu By.linkText() -menetelmän kautta. Jos kuitenkin on kaksi linkkiä, joilla on sama linkkiteksti, tämä menetelmä käyttää vain ensimmäistä. Harkitse alla olevaa HTML-koodia
Kun yrität suorittaa alla olevan WebDriver-koodin, pääset ensimmäiseen "napsauta tästä" -linkkiä
Code:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class MyClass { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/link.html"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get(baseUrl); driver.findElement(By.linkText("click here")).click(); System.out.println("title of page is: " + driver.getTitle()); driver.quit(); } }
Näin se toimii -
Tämän seurauksena sinut ohjataan automaattisesti osoitteeseen Google.
Täydellinen osittainen linkin teksti Selenium – By.partialLinkText()
Linkkien käyttäminen käyttämällä osaa niiden linkkitekstistä tapahtuu käyttämällä By.partialLinkText() menetelmä. Jos määrität osittaisen linkkitekstin, jossa on useita osumia, vain ensimmäinen vastaavuus otetaan käyttöön. Harkitse alla olevaa HTML-koodia.
Kun suoritat alla olevan WebDriver-koodin, sinut ohjataan silti osoitteeseen Google.
Code:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class P1 { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/accessing-link.html"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get(baseUrl); driver.findElement(By.partialLinkText("here")).click(); System.out.println("Title of page is: " + driver.getTitle()); driver.quit(); } }
Kuinka saada useita linkkejä samalla linkkitekstillä
Joten kuinka kiertää yllä oleva ongelma? Tapauksissa, joissa on useita linkkejä samalla linkkitekstillä ja haluamme käyttää muita linkkejä kuin ensimmäistä, miten toimitaan?
Tällaisissa tapauksissa käytetään yleensä erilaisia paikantimia, nimittäin… By.xpath(), By.cssSelector() tai By.tagName().
Yleisimmin käytetty on By.xpath(). Se on luotettavin, mutta se näyttää myös monimutkaiselta ja lukemattomalta.
Kirjainkoon erottelu linkkitekstissä
Parametrit kohteelle By.linkText() ja By.partialLinkText() molemmissa kirjainkoolla on merkitystä, mikä tarkoittaa, että isoilla kirjaimilla on merkitystä. Esimerkiksi sisään Mercury Toursin kotisivulla on kaksi linkkiä, jotka sisältävät tekstin "egis" - yksi on "REKISTERÖI"-linkki ylävalikosta ja toinen "Rekisteröidy" -linkki, joka löytyy sivun oikeasta alakulmasta.
Vaikka molemmat linkit sisältävät merkkijonon ”egis”, ”By.partialLinkText()”-metodi käyttää näitä kahta linkkiä erikseen merkkien isojen kirjainten käytöstä riippuen. Katso alla oleva esimerkkikoodi.
Code
public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/newtours/"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new 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(); }
Linkit lohkon ulkopuolelle ja sisällä
Uusin HTML5-standardi mahdollistaa tunnisteiden sijoittamisen lohkotason tunnisteiden, kuten , tai , sisään 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ä käyttämällä By.partialLinkText()-menetelmää.
Code:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class MyClass { public static void main(String[] args) { String baseUrl = "https://demo.guru99.com/test/block.html"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get(baseUrl); driver.findElement(By.partialLinkText("Inside")).click(); System.out.println(driver.getTitle()); driver.navigate().back(); driver.findElement(By.partialLinkText("Outside")).click(); System.out.println(driver.getTitle()); driver.quit(); } }
Yllä oleva tulos vahvistaa, että molempien linkkien käyttö onnistui, koska niiden vastaavat sivuotsikot haettiin oikein.



.png)
.png)

.png)
.png)
.png)
.png)
.png)

.png)
.png)
.png)
.png)
.png)