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.

  • 🔗 Linkkiteksti määritelty: Paikantaa hyperlinkkejä sivulla niiden näkyvän ankkuritekstin perusteella.
  • 🎯 Tekijä.linkText(): Vastaa linkkitekstiä täsmälleen ja palauttaa ensimmäisen osuman.
  • 🔎 Tekijä.osittainenLinkkiText(): Vastaa osaa linkkitekstistä ja palauttaa myös ensimmäisen osuman.
  • 🔠 Kirjainkokoherkkä: Molemmat lokaattorit käsittelevät isoja kirjaimia merkittävinä, joten ”egis” ja ”EGIS” eroavat toisistaan.
  • 🧱 Useita/Estä linkkejä: Käytä kaksoiskappaleiden kohdalla xpath- tai cssSelector-metodia; molemmat menetelmät toimivat lohkotunnisteiden sisällä tai ulkopuolella.

Linkkiteksti ja osittainen linkkiteksti kohdassa Selenium

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

Linkin teksti sisään Selenium-By.LinkText()

Linkin teksti sisään Selenium-By.LinkText()

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

Linkin teksti sisään Selenium-By.LinkText()

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 -

Linkin teksti sisään Selenium-By.LinkText()

Tämän seurauksena sinut ohjataan automaattisesti osoitteeseen Google.

Linkin teksti sisään Selenium-By.LinkText()

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.

Osittainen linkin teksti sisään Selenium – By.partialLinkText()

 Osittainen linkin teksti sisään Selenium – By.partialLinkText()

Kun suoritat alla olevan WebDriver-koodin, sinut ohjataan silti osoitteeseen Google.

 Osittainen linkin teksti sisään Selenium – By.partialLinkText()

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();
    }
}

Osittainen linkin teksti sisään Selenium – By.partialLinkText()

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ä

Kirjainten herkkyys linkkitekstiä varten

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.

Kirjainten herkkyys linkkitekstiä varten

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.

Kirjainten herkkyys linkkitekstiä varten

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.

Linkit lohkon ulkopuolelle ja sisällä

Linkit lohkon ulkopuolelle ja sisällä

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

Linkit lohkon ulkopuolelle ja sisällä

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.

UKK

By.linkText() löytää linkin täydellisen ja täsmälleen näkyvän tekstin, kun taas By.partialLinkText() löytää minkä tahansa linkin, joka sisältää annetun alimerkkijonon. Molemmat palauttavat vain ensimmäisen vastaavan linkin, jos useita linkkejä täyttää ehdot.

Kyllä. Sekä By.linkText() että By.partialLinkText() ovat kirjainkokoriippuvaisia, joten isoilla kirjaimilla on merkitystä. Tekstejä ”egis” ja ”EGIS” käsitellään eri arvoina, ja ne voivat vastata eri linkkejä samalla sivulla.

Koska linkkitekstin paikantimet palauttavat vain ensimmäisen osuman, käytä By.xpath()- tai By.cssSelector()-funktioita kohdistaaksesi tiettyyn linkkiin tai käytä findElements()-funktiota By.tagName(“a”)-funktion kanssa kerätäksesi kaikki linkit ja valitaksesi tarvitsemasi.

Tekoälytyökalut analysoivat DOM:ia ja luokittelevat attribuutit vakauden perusteella ehdottaakseen vankkoja XPath- tai CSS-valitsimia. Ne suosivat yksilöllisiä ja vähemmän hauraita tunnisteita, mikä vähentää pienten käyttöliittymämuutosten aiheuttamia virheitä testin suorituksen aikana.

Kyllä. Itsekorjaavat testikehykset käyttävät tekoälyä havaitakseen paikantimen epäonnistumisen, pisteyttävät sitten lähellä olevat elementit samankaltaisuuden perusteella ja vaihtavat automaattisesti lähimpään osumaan.ping testit suoritetaan vähemmällä manuaalisella ylläpidolla.

Tiivistä tämä viesti seuraavasti: