Lingi tekst ja osaline lingi tekst Selenium

⚡ Nutikas kokkuvõte

Lingi tekst ja osaline lingi tekst Selenium Leidke veebilehelt hüperlinke nende ankruteksti kaudu. Meetod By.linkText() leiab täpse teksti, samas kui By.partialLinkText() leiab osa tekstist ning mõlemad lokaatorid on tõstutundlikud ja tagastavad esimese vaste.

  • 🔗 Lingi teksti määratlus: Leiab lehel olevad hüperlingid nende nähtava ankruteksti järgi.
  • 🎯 Autor.linkText(): Vastab täpselt lingi tekstile ja tagastab esimese vaste.
  • 🔎 PartialLinkText(): Vastab lingi teksti osale, tagastades ka esimese vaste.
  • 🔠 Suur- ja väiketähtede tundlik: Mõlemad lokaatorid käsitlevad suurtähtede kasutamist olulisena, seega erinevad „egis” ja „EGIS”.
  • 🧱 Mitmed/blokeeritud lingid: Duplikaatide jaoks kasutage xpath'i või cssSelectorit; mõlemad meetodid töötavad nii plokisiltide sees kui ka väljaspool.

Lingi tekst ja osaline lingi tekst Selenium

Mis on lingi tekst Selenium?

A Link tekst sisse Selenium kasutatakse veebilehel olevate hüperlinkide tuvastamiseks. See määratakse ankrusildi abil. Hüperlinkide loomiseks veebilehel saame kasutada ankurmärgendit, millele järgneb link Tekst.

Kriteeriumile vastavad lingid

Linkidele pääseb juurde, kasutades nende lingi teksti täpset või osalist vastet. Allolevad näited pakuvad stsenaariume, kus oleks mitu vastet, ja selgitavad, kuidas WebDriver nendega tegeleb.

Selles õpetuses õpime saadaolevaid meetodeid veebidraiveri abil linkide leidmiseks ja neile juurde pääsemiseks. Samuti käsitleme mõningaid levinumaid probleeme, millega linkidele juurdepääsul kokku puutute, ja arutame edasi, kuidas neid lahendada.

Täitke lingi tekst Selenium – By.linkText()

Juurdepääs linkidele nende täpse lingiteksti abil toimub meetodi By.linkText() kaudu. Kui aga on kaks linki, millel on sama lingi tekst, pääseb see meetod juurde ainult esimesele. Mõelge allolevale HTML-koodile

Lingi tekst sisse Selenium–By.LinkText()

Lingi tekst sisse Selenium–By.LinkText()

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

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

}

Siin on, kuidas see töötab -

Lingi tekst sisse Selenium–By.LinkText()

Selle tulemusel suunatakse teid automaatselt lehele Google.

Lingi tekst sisse Selenium–By.LinkText()

Täitke osaline lingi tekst Selenium – By.partialLinkText()

Juurdepääs linkidele, kasutades osa nende lingi tekstist, toimub kasutades By.partialLinkText() meetod. Kui määrate osalise lingi teksti, millel on mitu vastet, pääseb juurde ainult esimesele vastele. Mõelge allolevale HTML-koodile.

Osaline lingi tekst sisse Selenium – By.partialLinkText()

 Osaline lingi tekst sisse Selenium – By.partialLinkText()

Alloleva WebDriveri koodi käivitamisel suunatakse teid ikkagi Google.

 Osaline lingi tekst sisse 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();
    }
}

Osaline lingi tekst sisse Selenium – By.partialLinkText()

Kuidas hankida mitu linki sama lingitekstiga

Niisiis, kuidas ülaltoodud probleemist mööda saada? Kui sama lingitekstiga on mitu linki ja me tahame juurde pääseda muudele linkidele peale esimese, kuidas seda teha?

Sellistel juhtudel kasutatakse üldiselt erinevaid lokaatoreid, nimelt… By.xpath(), By.cssSelector() või By.tagName().

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

Lingi teksti tõstutundlikkus

Lingi teksti tõstutundlikkus

Parameetrid jaoks By.linkText() ja By.partialLinkText() on mõlemad tõstutundlikud, mis tähendab, et suurtähtede kasutamine on oluline. Näiteks sisse Mercury Toursi kodulehel on kaks linki, mis sisaldavad teksti “egis” – üks on ülamenüüs olev link “REGISTREERU” ja teine ​​lehe paremas alanurgas olev link “Registreeri siin”.

Lingi teksti tõstutundlikkus

Kuigi mõlemad lingid sisaldavad märgijada „egis“, pääseb meetod „By.partialLinkText()“ neile kahele lingile eraldi juurde, olenevalt tähtede suurtähtede kasutamisest. Vaadake allolevat näidiskoodi.

Lingi teksti tõstutundlikkus

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

    }

Lingid plokist väljas ja sees

Uusim HTML5-standard lubab silte paigutada plokitasemel siltide (nt , , või ) sisse ja väljapoole. Meetodid "By.linkText()" ja "By.partialLinkText()" pääsevad juurde lingile, mis asub nendest plokitaseme elementidest väljaspool ja sees. Mõelge allolevale HTML-koodile.

Lingid plokist väljas ja sees

Lingid plokist väljas ja sees

Allolev WebDriveri kood pääseb mõlemale lingile, kasutades meetodit By.partialLinkText().

Lingid plokist väljas ja sees

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

Ülaltoodud väljund kinnitab, et mõlemale lingile pääseti edukalt juurde, kuna nende vastavad lehepealkirjad leiti õigesti.

KKK

By.linkText() leiab vaste lingi täielikule ja täpsele nähtavale tekstile, samas kui By.partialLinkText() leiab vaste mis tahes lingile, mis sisaldab antud alamstringi. Mõlemad tagastavad ainult esimese sobiva lingi, kui kvalifitseerub mitu linki.

Jah. Nii By.linkText() kui ka By.partialLinkText() on tõstutundlikud, seega on suurtähtede kasutamine oluline. Teksti „egis” ja „EGIS” käsitletakse erinevate väärtustena ja need võivad vastata samal lehel olevatele erinevatele linkidele.

Kuna lingiteksti lokaatorid tagastavad ainult esimese vaste, kasutage konkreetse lingi sihtimiseks funktsiooni By.xpath() või By.cssSelector() või kasutage kõigi linkide kogumiseks ja vajaliku valimiseks funktsiooni findElements() koos funktsiooniga By.tagName(“a”).

Tehisintellekti tööriistad analüüsivad DOM-i ja järjestavad atribuudid stabiilsuse järgi, et soovitada robustseid XPath- või CSS-selektoreid. Need eelistavad unikaalseid ja vähem hapraid identifikaatoreid, vähendades testi käivitamise ajal väiksematest kasutajaliidese muudatustest tingitud tõrkeid.

Jah. Isetervenevad testimisraamistikud kasutavad tehisintellekti, et tuvastada lokaatori rikkeid, seejärel hinnata lähedalasuvaid elemente sarnasuse alusel ja lülituda automaatselt lähima vaste juurde.ping testid, mis töötavad väiksema käsitsi hooldusega.

Võta see postitus kokku järgmiselt: